首页 > 试题广场 >

字符覆盖

[编程题]字符覆盖
  • 热度指数:3503 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
小度有一个小写字母组成的字符串s.字符串s已经被写在墙上了.
小度还有很多卡片,每个卡片上有一个小写字母,组成一个字符串t。小度可以选择字符串t中任意一个字符,然后覆盖在字符串s的一个字符之上。小度想知道在选取一些卡片覆盖s的一些字符之后,可以得到的字典序最大的字符串是什么。

输入描述:
输入包括两行,第一行一个字符串s,字符串s长度length(1 ≤ length ≤ 50),s中每个字符都是小写字母
第二行一个字符串t,字符串t长度length(1 ≤ length ≤ 50),t中每个字符都是小写字母


输出描述:
输出一个字符串,即可以得到的字典序最大字符串
示例1

输入

fedcba
ee

输出

feeeba
package main

import (
    "fmt"
    "strings"
    "sort"
)

func main() {
    var s,t string
    fmt.Scan(&s,&t)
    ss:=strings.Split(s,"")
    tt:=strings.Split(t,"")
    sort.Slice(tt,func(i,j int)bool{
        return tt[i]>tt[j]
    })
    idx:=0
    for i:=0;i<len(ss);i++{
        if idx<len(tt)&&ss[i]<tt[idx]{
            ss[i]=tt[idx]
            idx++
        } 
    }
    fmt.Print(strings.Join(ss,""))
}

发表于 2023-03-18 20:37:47 回复(0)