求助各位 60分代码
查看原帖
求助各位 60分代码
558336
root357楼主2022/1/17 18:34
#include <iostream>
#include <string>
using namespace std;
string s;
bool pd(int i){
	if(s[i] == '-'){
		if((s[i-1] >= 'a' && s[i-1] <= 'z') &&
		   (s[i+1] >= 'a' && s[i+1] <= 'z'))
			if(s[i-1] < s[i+1])
				return true;
		if((s[i-1] >= '0' && s[i-1] <= '9') &&
		   (s[i+1] >= '0' && s[i+1] <= '9'))
			if(s[i-1] < s[i+1])
				return true;
	}
	return false;
}
bool pd_(int i){
	if(s[i] == '-')
		if(s[i+1] == s[i-1]+1)
			return true;
	return false;
}
bool pd__(int i){
	if(s[i] == '-')
		if(s[i+1] <= s[i-1])
			return true;
	return false;
}
int main()
{
	int p1,p2,p3;
	cin >>p1>>p2>>p3;
	cin >>s;
	char code;
	for(int i=0;i<=s.length();i++){
		if(pd_(i)){
			printf("%c%c",s[i-1],s[i+1]);
			continue;
		}
		if(pd__(i)){
			printf("%c%c%c",s[i-1],s[i],s[i+1]);
			continue;
		}
		if(pd(i)){
			if(p1 == 1){
				if(p3 == 1)
					for(int j=1;j<=s[i+1] - s[i-1] - 1;j++)
						for(int k=1;k<=p2;k++)
							printf("%c",s[i-1]+j);
				if(p3 == 2)
					for(int j=s[i+1] - s[i-1] - 1;j>=1;j--)
						for(int k=1;k<=p2;k++)
							printf("%c",s[i-1]+j);
			}
			if(p1 == 2){
				if(p3 == 1)
					for(int j=1;j<=s[i+1] - s[i-1] - 1;j++)
						for(int k=1;k<=p2;k++)
							printf("%c",s[i-1]+j-'a'+'A');
				if(p3 == 2)
					for(int j=s[i+1] - s[i-1] - 1;j>=1;j--)
						for(int k=1;k<=p2;k++)
							printf("%c",s[i-1]+j-'a'+'A');
			}
			if(p1 == 3){
				for(int j=1;j<=s[i+1] - s[i-1] - 1;j++)
					for(int k=1;k<=p2;k++)
						printf("*");
			}
		}
		else {
			if(!pd__(i+1) && !pd__(i-1))
				printf("%c",s[i]);
		}
	}
	return 0;
}
2022/1/17 18:34
加载中...