> 文章列表 > 【ECNU】3650. 转机折扣(C++)

【ECNU】3650. 转机折扣(C++)

【ECNU】3650. 转机折扣(C++)

目录

题目

输入格式

输出格式

样例

思路

代码


题目

单点时限: 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;
}