华为OD统一考试 -字符串变换最小字符串

题目描述

给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。

变换规则:交换字符串中任意两个不同位置的字符。

输入描述

一串小写字母组成的字符串s

输出描述

按照要求进行变换得到的最小字符串。

备注

  • s是都是小写字符组成
  • 1 ≤ s.length ≤ 1000

用例

输入

abcdef

输出

abcdef

说明

abcdef已经是最小字符串,不需要交换。

输入

bcdefa

输出

acdefb

说明

a和b进行位置交换,可以得到最小字符串

题目解析

我的思路如下,先将输入的字符串str进行字典排序,得到一个新串minStr,如果str和minStr相同,则说明str已经是最小字符串,不需要任何变换,直接返回str。

如果str和minStr不同,则说明str不是最小字符串,我们需要遍历出str的每一个字符,对比str[i] 和 minStr[i] ,具体处理逻辑如下图

import Foundation
func ODTest_58() {
    print("一串小写字母组成的字符串")
    var str = readLine(

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024华为OD机试卷题 文章被收录于专栏

本专栏给大家提供了华为2024最新华为OD 题目汇总。华为OD机试刷题记录机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。

全部评论
点赞 回复 分享
发布于 2024-09-21 10:16 四川

相关推荐

05-26 09:07
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务