ホームページ >ウェブフロントエンド >jsチュートリアル >jsの文字列の完全な配置をアルゴリズム的に解析する
この記事では、js の文字列の完全な配置のアルゴリズム分析を紹介します。必要な友人は参考にしてください。
文字列を入力し、その文字列内の文字のすべての順列を辞書順に出力します。たとえば、文字列 abc を入力すると、文字 a、b、c で並べられる文字列 abc、acb、bac、bca、cab、cba がすべて出力されます。
この質問は何もわかりません。オンラインで検索すると、次のようになります。
abcはabc、bac、cbaに分かれています(これは0とcbaの交換です) 0、0と1の交換、0と2の交換
最初のステップで得られたabcは、abc、acbに分けられます(これは、1と1の交換、1と2の交換です
得られたbac最初のステップで得られた cba は、bac、bca (これは 1 と 1 の交換、1 と 2 の交換です) に分けられます
最初のステップで得られた cba は、cba と cab (これは 1 と 1 の交換であり、 1と2の交換
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; }
関連する推奨事項:
Object.defineProperty(JavaScriptの))メソッド分析
Reactの使い方: React コンポーネント内の状態管理
以上がjsの文字列の完全な配置をアルゴリズム的に解析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。