Javascript文字列の全配列の組み合わせ方法が実現されます.
4848 ワード
Javascript文字列の全配列の組み合わせ方法が実現されます.一、目標: 、考え方: 、コード: 一、目標:
一つの文字列の中の文字を並べ直して新しい文字列を生成します.例えば、abcは全部で6種類の配列(abc、acb、bac、bca、cab、cba)があります.
二、考え方:本の文章は全配列の状況だけを研究します.例えば、abc文字列です.3文字なら、全部の配列の組み合わせはnがあるべきです.ここのnは3種で、6種類のはずです.本論文は再帰的な方法で実現され、基本的な考え方は二重循環によって再帰的な主論理部分、外層循環str、内層循環n-1の場合の戻り行列preResult部分であり、アルゴリズム論理は下のフローチャートのようである. は、第一に、再帰的にどのように生成されるかを考慮し、n=1、つまり、strの長さが1だけの場合、直接にstrだけの配列に戻る.n>1の場合は、nとn−1の方法を考慮して配列の関係を返します.n時に多く出る1文字が、n-1の戻り行列に追加されます. Created with Rapha l 2.2.0スタートn>1?循環strは、グループの第一文字cをstrのcを取り除いて、残りの文字を元の組み合わせでnewStr(長さn-1)に再帰し、変数l循環lに値を与え、cとlの文字列をつなぎ合わせて、return[str]yes noを終了する.
三、コード:
一つの文字列の中の文字を並べ直して新しい文字列を生成します.例えば、abcは全部で6種類の配列(abc、acb、bac、bca、cab、cba)があります.
二、考え方:
三、コード:
// perm function
var perm = function(s) {
var result = [];
if (s.length <= 1) {
return [s];
} else {
for (var i = 0; i < s.length; i++) {
var c = s[i];
var newStr = s.slice(0, i) + s.slice(i + 1, s.length);
var l = perm(newStr);
for (var j = 0; j < l.length; j++) {
var tmp = c + l[j];
result.push(tmp);
}
}
}
return result;
};
興味がある人は一緒に最適化を検討してもいいです.