有木有大佬帮一下我(急,在线等)?RE 10

爱丽丝的卡片
中文

时间:0.2s 空间:32M

题目描述:

爱丽丝有一个由小写字母构成的字符串,字符串被写在了墙上。

同时,她还有一堆卡片,每张卡片上写着一个字母,爱丽丝可以取出若干张卡片,覆盖墙上的一些字母。(也可以一张都不取)

她希望覆盖之后新的字符串字典序尽可能大。帮她找出覆盖之后字典序最大的字符串吧。

输入格式:

第一行输入一个字符串,表示墙上的字符串。

第二行输入一个字符串,表示爱丽丝手上拥有的字母。

输出格式:

输出一行,包含一个字符串

样例输入:

fedcba ee

样例输出:

feeeba

约定:

字符串长度<=50,都由小写字母构成

代码

#include <bits/stdc++.h>
using namespace std;
string a,b,c;
int vis[105];
int main(){
    cin>>a>>b;
    int len=a.size(),lenn=b.size();
    for(int i=0;i<len;i++){
    	c[i]=a[i];
    	for(int j=0;j<lenn;j++){
    		if(c[i]<b[j]&&vis[j]==0){
    			c[i]=b[j];
    			vis[j]=1;
			}
		}
	}
	for(int i=0;i<len;i++){
		cout<<c[i];
	}
}
4 个赞
#include<bits/stdc++.h>
using namespace std;
string s,t;
int main(){
cin>>s>>t;
sort(t.begin(),t.end(),greater<char>());
int p=0;
for(int i=0;i<s.size();i++){
if(s[i]<t[p]){
s[i]=t[p++];
}
}
cout<<s<<endl;
return 0;
}
1 个赞