目录
题目
单点时限: 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
思路
难度评级:⭐️
步骤:
1. 先比较得出较小的字符串
2. 再在较小的字符串上+1
代码
#include <iostream>
using namespace std;
// 对字符串+1
void add(string &s) {
int out=1;// 进位
for(int i=s.size()-1;i>=0;i--) {
if(out==0) break;
s[i]+=out;
if(s[i]>'Z') s[i]='A';
else out=0;
}
}
int main(int argc, char** argv) {
string s,t;
cin>>s>>t;
string ans=s>t ? t : s;
add(ans);
cout<<ans;
return 0;
}