#include<bits/stdc++.h>
using namespace std;
int main()
{
freopen("in.txt","r",stdin);
int p1,p2,p3;
cin>>p1>>p2>>p3;
getchar();
string s;cin>>s;
string temp;
for(int i=0;i<s.length();i++){
if(s[i]!='-'){
temp+=s[i];
}else if(s[i]=='-'&&((isdigit(s[i-1])&&isdigit(s[i+1]))||(islower(s[i-1])&&islower(s[i+1])))){
if(s[i-1]>=s[i+1]){
temp+=s[i];
}
if(s[i-1]+1<s[i+1]){
string p;
for(char t=s[i-1]+1;t<s[i+1];t++){
for(int q=0;q<p2;q++){
p+=t;
}
}
if(p3==2){
reverse(p.begin(),p.end());
}
if(p1==2){
transform(p.begin(),p.end(),p.begin(),::toupper);
}else if(p1==3){
int len=p.length();p.clear();
for(int j=0;j<len;j++){
p+='*';
}
}
temp+=p;
}
if(s[i-1]+1==s[i+1]){
continue;
}
}else{
temp+=s[i];
}
}
cout<<temp;
return 0;
}
最后一个else一开始漏掉了就有五个测试点过不了,这个应该注意~
本文介绍了一种使用C++实现的特殊字符处理算法,该算法能够根据特定规则插入字符序列并进行字符转换、反转等操作。通过对输入字符串的逐个字符检查与条件判断,实现了在特定条件下插入指定范围内的字符序列,并支持大小写转换、字符反转等功能。
1275

被折叠的 条评论
为什么被折叠?



