题解
2024-08-20 15:15:25
发布于:广东
28阅读
0回复
0点赞
非常好的一道模拟题。
纯模拟就行,把脑子拿出来寄存一下,然后无脑模拟就行。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<string> ves(110,"");
int main()
{
int p1,p2,p3;
cin>>p1>>p2>>p3;
string s;
cin>>s;
for(int i=0;i<s.length();i++)
{
if(0<=i-1&&i+1<s.length()&&s[i]=='-'&&!(isdigit(s[i-1])^isdigit(s[i+1]))&&s[i-1]<s[i+1]&&s[i-1]!='-'&&s[i+1]!='-')
{
char c=s[i-1]+1;
int cnt=0;
for(;c<s[i+1];c++)
{
for(int j=1;j<=p2;j++)
{
if(p1==2&&!isdigit(c)) ves[i]+=char(c-32);
if(p1==3) ves[i]+='*';
else if(p1==1||isdigit(c)) ves[i]+=c;
}
}
if(p3==2)
{
reverse(ves[i].begin(),ves[i].end());
}
}
}
for(int i=0;i<s.length();i++)
{
if(0<=i-1&&i+1<s.length()&&s[i]=='-'&&!(isdigit(s[i-1])^isdigit(s[i+1]))&&s[i-1]<s[i+1]&&s[i-1]!='-'&&s[i+1]!='-') cout<<ves[i];
else cout<<s[i];
}
}
这里空空如也
有帮助,赞一个