私は文字列str
と2つの正の整数M
とN
を持っています。ここでM
はN
以下です。私が望むのは、文字列を分割して、各部分が文字以下で、M
文字以上であることです(文字列の長さがM
より大きいと仮定します)。N
より大きくない場合、 N
は文字列の長さに等しい)。例えば、M=1
、N=3
と私の文字列が"aabcde"
であれば、結果は文字列が与えられた場合、各部分文字列がN個以下でM個以下の文字を含む可能性のある部分文字列のすべての可能な配列を生成する方法はありますか?
var str = "aabcde";
var result = [
["a", "a", "b", "cde"],
["a", "ab", "cde"],
["aa", "b", "cde"],
//...
["aab", "cde"],
["aab", "cd", "e"],
["aab", "c", "de"],
["aab", "c", "d", "e"]
]
である必要があり、不要な中間サブアレイを避けて、この問題を解決するための効率的な方法は何ですか?私はすべての可能な組み合わせを生成し、許容されない長さの部分文字列が少なくとも1つ含まれている場合は、各部分配列を削除したくありません。不要な計算をすることなく別の方法がありますか?
あなたは少なくともそこから最適化する方法を考えることができるように、非効率的なソリューションのコードを表示する必要があります。 – 4castle