【算法题】字符串变换最小字符串 * (js)

2023-12-13 04:37:04

在这里插入图片描述
在这里插入图片描述

思路:
将字符按字典排序得到minStr,对比原str
如果 minStr === str 则本身就是最小字符串
否则从前往后遍历str,让str[i]和minStr[i]对比,如果不同则替换 str[i]为minStr[i],并且这个minStr[i]这个字符要从str中寻找,
如果存在多个该字符则找最后一个字符与他替换才能成为最小字符串。

const str = "bcdefa";
function solution(str) {
  const minStr = str.split("").sort().join("");
  if (minStr === str) return str;
  for (let i = 0; i < str.length; i++) {
    if (str[i] !== minStr[i]) {
      const char = minStr[i];
      const changeIndex = str.lastIndexOf(char);
      const arry = str.split("");
      [arry[i], arry[changeIndex]] = [arry[changeIndex], arry[i]];
      return arry.join("");
    }
  }
}
console.log(solution(str));
/* 
   abcdef  =>  abcdef 
   bcdefa => acdefa
 */

文章来源:https://blog.csdn.net/qq_43682422/article/details/134919380
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。