【算法题】字符串变换最小字符串 * (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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!