全排列算法

2021-01-22  本文已影响0人  衣裳云墨

1、问题描述:给定一个字符串,输出该字符串所有排列的可能。如输入“abc”,输出“abc,acb,bca,bac,cab,cba”。

function permutate(str) {
      let result = [];

      if (str.length > 1) {
        let [left, ...rest] = str
        let preResult = permutate(rest)

        for (let i = 0; i < preResult.length; i++) {
          for (let j = 0; j < preResult[i].length + 1; j++) {
            let tmp = preResult[i].slice(0, j) + left + preResult[i].slice(j, preResult[i].length);
            result.push(tmp);
          }
        }
      } else {
        return [str]
      }
      return result
    }
    console.log(permutate('abc'))
上一篇下一篇

猜你喜欢

热点阅读