当前位置:   article > 正文

【免费题库】华为OD机试 - 字符串变换最小字符串(Java & JS & Python & C & C++)

【免费题库】华为OD机试 - 字符串变换最小字符串(Java & JS & Python & C & C++)

题目描述

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

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

输入描述

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

输出描述

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

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

用例

输入 abcdef
输出 abcdef
说明 abcdef已经是最小字符串,不需要交换。
输入 bcdefa
输出 acdefb
说明 a和b进行位置交换,可以得到最小字符串

解题思路:

  1. 遍历字符串,找到第一个不是按字典序排列的字符的位置。
  2. 再次遍历字符串,找到第一个比该位置字符小的字符的位置。
  3. 交换这两个位置的字符。
  4. 返回变换后的字符串。

Java代码:

public class Main {
   
    public 
  • 1
  • 2
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号