80pts求助
查看原帖
80pts求助
1046564
Sunnnnnn楼主2024/6/29 16:54
#include<bits/stdc++.h>
using namespace std;
int p1,p2,p3;
string s;
char to(char c){
	if(p1==1){
		if(c>='A'&&c<='Z')return 'a'+c-'A';
		else return c;
	}
	if(p1==2){
		if(c>='a'&&c<='z')return 'A'+c-'a';
		else return c;
	}
	if(p1==3)return '*';
	return 0;
}
string work(char a,char b,char c){
	string res;
	for(char i=a+1;i<c;i=i+1){
		for(int j=1;j<=p2;j++){
			res+=to(i);
		}
	}
	if(p3==2)reverse(res.begin(),res.end());
	return a+res+c;
}
int main(){
	cin>>p1>>p2>>p3;
	cin>>s;
	for(int i=0;i<s.length();i++){
		if(s[i+1]=='-'&&s[i+2]!='-'&&s[i]<s[i+2]&&((s[i]>='A'&&s[i+2]<='Z')||(s[i]>='a'&&s[i+2]<='z')||(s[i]>='0'&&s[i+2]<='9'))){
			cout<<work(s[i],s[i+1],s[i+2]);
			i+=2;
		}else{
			cout<<s[i];
		}
	}
//	cout<<work('d','-','e');
	return 0;
}

2024/6/29 16:54
加载中...