Heim >Web-Frontend >js-Tutorial >Algorithmische Analyse der vollständigen Anordnung von Strings in js

Algorithmische Analyse der vollständigen Anordnung von Strings in js

不言
不言Original
2018-07-20 10:58:302443Durchsuche

Dieser Artikel stellt Ihnen die Algorithmusanalyse der vollständigen Anordnung von Zeichenfolgen in js vor. Er hat einen gewissen Referenzwert.

Problembeschreibung

Geben Sie eine Zeichenfolge ein und drucken Sie alle Permutationen der Zeichen in der Zeichenfolge in Wörterbuchreihenfolge aus. Wenn beispielsweise die Zeichenfolge abc eingegeben wird, werden alle Zeichenfolgen abc, acb, bac, bca, cab und cba gedruckt, die nach den Zeichen a, b und c angeordnet werden können.

Analyse

Ich kenne diese Frage nicht. Die Idee der Online-Suche ist wahrscheinlich:

abc ist unterteilt in abc, bac , cba (dies ist der Austausch von 0 und 0, der Austausch von 0 und 1, der Austausch von 0 und 2

Das im ersten Schritt erhaltene ABC wird in abc und acb unterteilt (dies ist der Austausch von 1 und 1, der Austausch von 1 und 2

Der im ersten Schritt erhaltene Bac wird in Bac und Bca unterteilt (dies ist der Austausch von 1 und 1 und der Austausch von 1 und 2

Der in erhaltene CBA Der erste Schritt ist in cba und cab unterteilt (dies ist der Austausch von 1 und 1, 1 und 2).

Code-Implementierung

function Permutation(str)
{
    if(str === null || str === "")
        return [];
    var res = [];
    var index = 0;
    
    step(str.split(""), index, res);
    
    return res.sort();
}

function step(strArr, cur, res) {
    if(cur === strArr.length-1){
        var i = 0, str = "";
        while(i < strArr.length){
            str += strArr[i++];
        }
        res.push(str);
    }
    
    for(var i = cur;i < strArr.length;i++) {
        if(strArr[i] === strArr[cur] && i !== cur)
            continue;
        swap(strArr, i, cur);
        step(strArr, cur+1, res);
        swap(strArr, i, cur);
    }
}

function swap(arr, a, b) {
    var temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;
}

Verwandte Empfehlungen:

Analyse der Object.defineProperty()-Methode in JavaScript

Beispielanalyse des Unit-Tests von vue-cli

Verwendung von React: Zustandsverwaltung innerhalb von React-Komponenten

Das obige ist der detaillierte Inhalt vonAlgorithmische Analyse der vollständigen Anordnung von Strings in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn