60分求助#5#8RE #6#7WA
查看原帖
60分求助#5#8RE #6#7WA
492869
zzuzgf楼主2021/9/6 18:32
#include <bits/stdc++.h>
using namespace std;

int p1,p2,p3,sum,pos=1;

int main()
{
	cin>>p1>>p2>>p3;
	string s;	cin>>s;
	for(int i=0;i<s.length();i++){
		if(s[i]=='-')	sum++;
	}
	while(sum--)
	{
		pos=s.find('-',pos);
		char c1=s[pos-1],c2=s[pos+1];
		string str="";
		if(c1+1==c2){
			s.erase(pos,1);
			continue;
		}
		else if(c1>=c2){
			pos++;
			continue;
		}
		else if(isdigit(c1)&&isalpha(c2)||isalpha(c1)&&isdigit(c2)){
			pos++;
			continue;
		}
		else if((c1>='0'&&c1<='9'&&c2>='0'&&c2<='9')||(c1>='a'&&c1<='z'&&c2>='a'&&c2<='z'))
		{
			for(char i=c1+1;i<c2;i++)
			{
				if(p1==1)
				{
					for(int j=1;j<=p2;j++)
						str+=i;
				}
				else if(p1==2)
				{
					if(c1>='0'&&c1<='9')
					{
						for(int j=1;j<=p2;j++)
							str+=i;
					}
					else
					{
						for(int j=1;j<=p2;j++)
							str+=toupper(i);
					}
				}
				else if(p1==3)
				{
					for(int j=1;j<=p2;j++)
						str+='*';
				}
			}
		}	
		if(p3==2)	reverse(str.begin(),str.end());
		s.replace(pos,1,str);
	}
	cout<<s;
	return 0;
}
2021/9/6 18:32
加载中...