单点时限: 2.0 sec
内存限制: 512 MB
你女朋友最近又不理你了。这一定是因为你上个月没有去浦东看她。异地恋实在是太辛苦了,浦西到浦东的距离,对于你来说,就像是上海到北京的距离。
曾有诗这样写道:
世上最遥远的距离,不是生与死的距离,不是天各一方,而是我就站在你面前,你却不知道我爱你。
你决定乘坐航班从虹桥飞往浦东,希望能挽回你女朋友的心。
众所周知,虹桥没有直飞浦东的航班,你需要找一个机场转机。虽然你不在乎这个经济成本,但是,幸运的是,为了庆祝双十一,航空公司推出了一个活动,若你从机场 A 乘坐航班飞往机场 B,机场 B 接着飞往机场 C,且机场 B 的字典序在机场 A 和机场 C 之间的,可以享受 9 折优惠。
所有机场的名字长度都是相等的。
一句话题意:给出等长的两个字符串 s 和 t,要求一个与他们等长的字符串字典序比其中一个大,但比另外一个小。
输入格式
输入两行两个等长的非空字符串 s, t。长度不超过 105,由英文大写字母组成。
输入保证有解。
输出格式
输出一个与输入的字符串等长的字符串,也由英文大写字母组成。如果有多解,输出任意一解。
样例
input
SHA
PVG
output
PZI
input
ZSPD
ZSSS
output
ZSQD
/*
思路:从后往前找,只要能够比最小字典字符串大就行,保证前面的序列和最小的一样。
*/
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
string s1,s2;
cin>>s1>>s2;
n=s1.size();
if(s1>s2)
swap(s1,s2);
for(int i = s1.size(); i>=0;) {
if(s1[i]=='Z')
i--;
else {
s1[i]++;
for(int j=i+1; j<n; j++)
s1[j]='A';
break;
}
}
cout<<s1<<endl;
return 0;
}