JSは、安全ブラシプランを証明するために使用(文字列配列)

タイトル説明

説明タイトルの
入力は、文字列内のすべての文字を印刷するための文字列を辞書式順序で配置されています。例えば、入力文字列abcの場合は、ABCのすべての文字列、B、Cが出て配置することができ、ACB、BAC、BCA、CABおよびCBAを印刷します。
入力説明:
9(おそらく繰り返し文字)以下での文字列を入力し、文字は小文字のみが含まれます。

考え

バックトラックの考え方に基づいて、
7578108_1499250116235_8F032F665EBB2978C26C4051D5B89E90

ネットワークリンクオフ牛

JSコード

function Permutation(str)
{
    // write code here
    if (str === '') return []
    let arr = str.split('')
    let res = []
    Help(arr, 0)
    return res.sort()
    
    function Help(arr, i) {
        if (i === arr.length-1) {
            if (!res.includes(arr.join(''))) {
                res.push(arr.join(''))
                return
            }
            
        }
        for(let j = i; j < arr.length; j++) {
            swap(arr, i, j)
            Help(arr, i+1)
            swap(arr, i, j)
        }
    }
    
    function swap (arr, i, j) {
        let temp = arr[i]
        arr[i] = arr[j]
        arr[j] = temp
    }
}

おすすめ

転載: www.cnblogs.com/dpnlp/p/yongjs-shua-jian-zhioffer-zi-fu-chuan-de-pai-lie.html