【发布时间】:2011-02-10 19:44:29
【问题描述】:
每个递归函数都有等效的 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] 中。
我可以确认这段代码有效,但它可能有内存问题,所以我想把它变成一个循环......如果可能的话。
您需要更多信息吗??
谢谢。
【问题讨论】:
标签: java loops recursion for-loop nested-loops