1.题目描述
小度有一个小写字母组成的字符串s
.字符串s
已经被写在墙上了.
小度还有很多卡片,每个卡片上有一个小写字母,组成一个字符串t
。小度可以选择字符串t
中任意一个字符,然后覆盖在字符串s
的一个字符之上。小度想知道在选取一些卡片覆盖s
的一些字符之后,可以得到的字典序最大的字符串是什么。
- 输入描述:
输入包括两行,第一行一个字符串s
,字符串s
长度 length(1 ≤length ≤50),s
中每个字符都是小写字母第二行一个字符串t
,字符串t
长度length(1 ≤ length ≤ 50),t
中每个字符都是小写字母 - 输出描述:
输出一个字符串,即可以得到的字典序最大字符串 - 输入示例:
fedcba ee
- 输出示例:
feeeba
2.题目解析
把t
按从大到小依次替换s
中小的字符。
3.参考答案
#include <bits/stdc++.h>
using namespace std;
bool cmp(char a,char b){
return a>b; //正确的顺序
}
int main(){
string s ;
cin >> s;
string t ;
cin >> t;
sort(t.begin(),t.end(),cmp);
int j =0;
for(int i =0;i<s.size();i++){
while(j<t.size()){
if(s[i] <t[j]){
s[i]=t[j];
j++;
}else{
break;
}
}
}
cout << s;
return 0;
}
网友评论