题意:给定两个相同长度的字符串,让你找出一个字符串,字典序在两都之间。
析:这个题当时WA了好多次,后来才发现是这么水,我们只要把 s 串加上,然后和算数一样,该进位进位,然后再和 t 比较就行。
代码如下:
#include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <set> #include <cstring> #include <cmath> #include <map> #include <cctype> using namespace std; const int maxn = 1000 + 5; string s, t; int main(){ while(cin >> s >> t){ int n = s.size(); int cnt = 0; ++s[n-1]; if(s[n-1] > 'z'){ s[n-1] = 'a'; cnt = 1; } for(int i = n-2; i >= 0; --i){ s[i] += cnt; if(s[i] > 'z'){ s[i] = 'a'; cnt = 1; } else cnt = 0; } if(s == t) puts("No such string"); else cout << s << endl; } return 0; }