当前位置:   article > 正文

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

给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序
题目描述

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

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

输入描述

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

输出描述

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

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

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

  1. public class 字符串变换最小字符串 {
  2. public static void main(String[] args) {
  3. Scanner sc =new Scanner(System.in);
  4. String s = sc.nextLine();
  5. System.out.println(getResult(s));
  6. }
  7. private static String getResult(String s) {
  8. char[] minChars = s.toCharArray();
  9. Arrays.sort(minChars);
  10. String misS = new String(minChars);
  11. char[] sArr = s.toCharArray();
  12. if(s.equals(misS)){
  13. return misS;
  14. }
  15. for (int i = 0; i < s.length(); i++) {
  16. if(minChars[i]!=sArr[i]){
  17. char temp = sArr[i];
  18. sArr[i]=minChars[i];
  19. int index=s.lastIndexOf(minChars[i]);
  20. sArr[index]=temp;
  21. break;
  22. }
  23. }
  24. return new String(sArr);
  25. }
  26. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/769573
推荐阅读
相关标签
  

闽ICP备14008679号