列表

详情


NC54289. 辞旧迎新

描述

        Reverie之前喜欢一句格言s,她最近又得到了一句新的格言t。
        于是她想把s中的一些字符用t中的字符替换,使得s的字典序尽可能小,你能帮帮她么?
        t中的每个字符只能用一次。

输入描述

第一行给出一个只包含小写字母的字符串s.
第二行给出一个只包含小写字母的字符串t.

输出描述

一行内输出替换后的字符串s.

示例1

输入:

helloworld
reverie

输出:

eeeeirorld

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++ 11.0.1) 解法, 执行用时: 11ms, 内存消耗: 740K, 提交时间: 2023-01-07 21:31:04

#include<bits/stdc++.h>
using namespace std;

int main(){
  string s, t; cin >> s >> t;
  sort(t.begin(), t.end());
  int l = 0;
  for (auto &ch: s) if (l < t.size() && ch > t[l]) ch = t[l++];
  cout << s << endl;
}

pypy3 解法, 执行用时: 1030ms, 内存消耗: 35140K, 提交时间: 2023-03-22 20:33:12

s=input()
t=input()
sort_t = sorted(t)
new_s = ""
j = 0
for i in range(len(s)):
    if s[i]>sort_t[j]:
        new_s +=sort_t[j]
        j += 1
    else:
        new_s += s[i]
print(new_s)
    
            

Python3 解法, 执行用时: 547ms, 内存消耗: 7120K, 提交时间: 2023-03-28 09:37:51

a=input()
b=sorted(input(),key=lambda x:x)
c=0
for i in a:
    if i > b[c]:
        print(b[c],end='')
        c+=1
    else:
        print(i,end='')

上一题