我正在尝试将此递归方法转换为迭代方法。但是我被困在了中间。
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)