题目描述:
要求以数组的形式返回字符串参数的所有排列组合。注意:
1.字符串参数中的字符无重复且仅包含小写字母
2.返回的排列组合数组不区分顺序
思路:遍历传入的string,将每一个字符拼接上剩余字符串的全排列数组即可
const _permute = string => {
if(string.length === 1) {
return [string]
}
const results = []
for(let x of string) {
// 获取当前字符之外的字符,并拆分为数组
const arr = string.split('').filter(ele => ele!==x)
// 获取除当前字符的字符串的全排列,并将其每一项拼接当前字符
_permute(arr.join('')).forEach(ele => {
results.push(x+ele)
})
}
return results
}