【算法】字符串的全排列
思路:首位字符 + 递归判断
/**
* @param {string} s
* @return {string[]}
*/
var permutation = function(s) {
// set 去重比 object key 去重性能更好
const set = new Set()
const len = s.length;
// 递归退出条件
if(len==1)return [s];
// 遍历字符串
for(let index=0;index<len;index++){
// 当前字符串 作为 首位字符
const cur = s[index];
// 去除 当前字符串 获取 剩余字符串
const subStr = s.slice(0,index)+s.slice(index+1,len);
// 递归
const subArr = permutation(subStr);
subArr.forEach(item=>{
set.add(`${cur}${item}`)
})
}
return [...set]
};
赠人玫瑰, 手有余香。🌹
打赏
特别鸣谢
感谢以下用户对本文的支持与鼓励
加载打赏用户中
发表评论
文章评论
暂无任何评论,快去发表吧~