思路:
将字符按字典排序得到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
*/