Maison > interface Web > js tutoriel > Analyse algorithmique de l'arrangement complet des chaînes en js

Analyse algorithmique de l'arrangement complet des chaînes en js

不言
Libérer: 2018-07-20 10:58:30
original
2411 Les gens l'ont consulté

Cet article vous présente l'analyse algorithmique de l'arrangement complet des chaînes en js. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Description du problème

Entrez une chaîne et imprimez toutes les permutations de caractères dans la chaîne dans l'ordre du dictionnaire. Par exemple, si la chaîne abc est saisie, toutes les chaînes abc, acb, bac, bca, cab et cba qui peuvent être organisées par les caractères a, b et c seront imprimées.

Analyse

Il n'y a rien à analyser. Je ne connais pas cette question. L'idée de chercher en ligne est probablement :

abc est divisé en abc, bac. , cba (c'est l'échange 0 et 0, l'échange 0 et 1, l'échange 0 et 2

L'abc obtenu à la première étape est divisé en abc et acb (c'est l'échange de 1 et 1, l'échange de 1 et 2

Le bac obtenu à la première étape se divise en bac et bca (c'est l'échange de 1 et 1, et l'échange de 1 et 2

Le cba obtenu en la première étape est divisée en cba et cab (c'est l'échange de 1 et 1, 1 et 2 échange

Mise en œuvre du code

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;
}
Copier après la connexion

Recommandations associées :

Analyse de la méthode Object.defineProperty() en JavaScript

Exemple d'analyse de tests unitaires de vue-cli

Utilisation de React : gestion de l'état dans les composants React

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal