远浅
理解他人,内省自己。

【算法】字符串的全排列

远浅发表于: 2021-06-22 10:39分类: 技术

LeetCode 原题链接

思路:首位字符 + 递归判断

/**
 * @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]
};
赠人玫瑰, 手有余香。🌹
打赏
特别鸣谢
感谢以下用户对本文的支持与鼓励
加载打赏用户中
发表评论
评论列表
评论努力加载中