爱丽丝的卡片
时间:0.2s 空间:32M
题目描述:
爱丽丝有一个由小写字母构成的字符串,字符串被写在了墙上。
同时,她还有一堆卡片,每张卡片上写着一个字母,爱丽丝可以取出若干张卡片,覆盖墙上的一些字母。(也可以一张都不取)
她希望覆盖之后新的字符串字典序尽可能大。帮她找出覆盖之后字典序最大的字符串吧。
输入格式:
第一行输入一个字符串,表示墙上的字符串。
第二行输入一个字符串,表示爱丽丝手上拥有的字母。
输出格式:
输出一行,包含一个字符串
约定:
字符串长度<=50,都由小写字母构成
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string wall, cards;
cin >> wall >> cards;
sort(cards.rbegin(), cards.rend());
int i = 0, j = 0;
while (i < wall.length() && j < cards.length()) {
if (cards[j] > wall[i]) {
wall[i] = cards[j];
j++;
}
i++;
}
cout << wall << endl;
return 0;
}