すべての再帰関数には同等の for ループがありますか? (どちらも同じ結果になります)。
私はこの再帰関数を持っています:
private static boolean recur(String word, int length) {
if(length == 1 || length == 2)
return false;
if(length == 0)
return true;
if(words[length].contains(word.substring(0, length)))
return recur(word.substring(length), word.length() - length);
return recur(word, length-1);
}
words が Set[] であるとすると、words[i] = 長さ i の単語のセットです。
やろうとしていることは次のとおりです。単語で再帰を開始します(たとえば、「stackoverflow」、スペースなし)。この単語をサブワード(「stack」、「over」、「flow」)に分割できるかどうかを確認しようとしています.. サブワードの最小長は 3 であり、長さ i のサブワードが Set words[i] にあるとします。
このコードが動作することは確認できますが、メモリに問題がある可能性があるため、可能であればループにしたいと考えています。
もっと情報が必要ですか??
ありがとう。