每个递归函数都有一个等价的 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] 中。
我可以确认这段代码有效,但它可能有内存问题,所以我想把它变成一个循环......如果可能的话。
您需要更多信息吗?
谢谢。