字符串的排列

今天突然看到一个字符串排列的算法,考虑自己写一下实在是太难了;

例子:abc

abc acb bca bac cab cba

var permutation = function(s) {
const result = []
if(s){
queue = s.split('')
permutationCore(queue,result)
}
// result.sort()
// return [...new Set(result)]
return result
};
function permutationCore(queue,result,temp="",current=""){
current += temp
if(queue.length === 0){
result.push(current)
return
}
for(let i=0;i<queue.length;i++){
temp = queue.shift()
permutationCore(queue,result,temp,current)
queue.push(temp)
console.log(queue)
}
}

console.log(permutation('abc'))
由于不太好理解。 主要思想是
abc      acb
bac      bca
cab      cba
其实是利用回朔。 
  
posted @ 2021-05-12 22:08  国服第一李师师  阅读(34)  评论(0编辑  收藏  举报