我試圖將此遞歸方法轉換爲迭代方法。但我陷入了中間。在Java中遞歸迭代
static void string_recurse(String active,String rest) {
if (rest.length() == 0) {
System.out.println(active);
} else {
string_recurse(active + rest.charAt(0), rest.substring(1, rest.length()));
string_recurse(active, rest.substring(1, rest.length()));
}
}
我不明白如何將此遞歸方法轉換爲迭代方法。 這種方法所做的是打印給定單詞的所有「子集」單詞。更正式地說,如果我們有串s_1s_2...s_n
它枚舉所有字符串s_{i1}s_{i2}...s_{ik}
這樣i1, i2, ..., ik
是{1, ..., n}
一個子集,i1 < i2 < ... < ik
例如,當我們調用string_recurse("","abc");
我們得到的輸出:
abc
ab
ac
a
bc
b
c
(the empty word)
你能說出這個方法做什麼嗎? –
你究竟在哪裏卡住?令人驚訝的是,我甚至沒有在這裏看到一個循環。 – SudoRahul
什麼是活動和休息字符串?你能舉一些例子嗎? –