js输出一个字符串全队列

2023-06-26 10:37:20 浏览数 (1)

分析:

  1. 循环的同时,利用递归,排除当前元素,获取其他元素的组合,然后再与当前元素进行组装
代码语言:javascript复制
function fullpermutate(str) {
    let result = [];
  	if (str.length == 1) {
        result.push(str);
		} else if (str.length > 1) {
        for (let index = 0, len = str.length; index < len; index  ) {
            let current = str[index];
            let rest = str.slice(0, index)   str.slice(index   1, str.length);
            // 上一次递归返回的全排列
            let preResult = fullpermutate(rest);
            // 组合
            for (let index = 0, len = preResult.length; index < len; index  ) {
                let tmp = current   preResult[index];
                result.push(tmp);
            }
        }
    }
    return result;
}
console.log('abc:', fullpermutate("abc")); // [ 'abc', 'acb', 'bac', 'bca', 'cab', 'cba' ]

0 人点赞