ZOJ 3490String Successor(模拟)

来源:互联网 发布:阿里云合作伙伴 编辑:程序博客网 时间:2024/04/28 05:58

比较麻烦  坑的地方比较多


#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <string>#include <vector>#include <queue>#include <stack>#include <cmath>#include <ctime>#include <list>#include <set>#include <map>using namespace std;typedef long long ll;#define PB push_back#define UB upper_bound#define LB lower_bound#define MP make_pair#define pii pair<int,int>#define vi vector<int>#define vii vector<vi>#define mst(x,y) memset(x,y,sizeof(x))#define fr(x) freopen(x,"r",stdin)#define fw(x) freopen(x,"w",stdout)#define iin(x) scanf("%d",&x)#define complete_unique(a) a.erase(unique(a.begin(),a.end()),a.end())#define sp system("pause")#define INF 1e9#define MAXN 100005#define PI acos(-1.0)#define eps 1e-10const int MOD = 1e9 + 7;int main(){int T;cin>>T;while(T--){string s;int n;cin>>s>>n;for(int i=0;i<n;i++){int cot=0,pos;int j=s.size()-1;pos=j;while(1){cot=0;while(j>=0&&!isalnum(s[j])){j--;}if(j<0){j=pos;if(isalnum(s[j])){if(s[j]=='A')s.insert(j,"A");else if(s[j]=='a')s.insert(j,"a");else if(s[j]=='0')s.insert(j,"1");}else {s[j]++;break;}}else {if(isalnum(s[j])){if(s[j]=='9'){s[j]='0';cot=1;}else if(s[j]=='Z'){s[j]='A';cot=1;}else if(s[j]=='z'){s[j]='a';cot=1;}else s[j]++;}pos=j;j--;}if(cot==0)break;}cout<<s<<"\n";}cout<<"\n";}return 0;}


0 0