【发布时间】:2015-08-04 18:29:06
【问题描述】:
我有以下代码:
public class Application {
public static void main(String[] args)
{
String source = "Testing";
go(source);
}
public static void go(String source)
{
for (int i = 0; i < source.length(); i ++)
{
for (int j = i + 1; j <= source.length(); j++)
{
System.out.println(source.substring(i, j));
}
}
}
}
当我运行这段代码时,我得到以下输出:
T
Te
Tes
Test
Testi
Testin
Testing
e
es
est
esti
estin
esting
s
st
sti
stin
sting
t
ti
tin
ting
i
in
ing
n
ng
g
这很棒 - 但它实际上并不是我想要的。我还希望能够获得作为该单词子字符串的所有可能字符串。
如gist、set、tie等
我意识到我的代码在这方面是错误的,但我也不确定如何扩展它以实现我想要的!
感谢任何帮助!
【问题讨论】:
-
您想要字符串中所有可能随机选择的字符的所有可能排列吗? (gist、set、tie 甚至不是子串的排列)
-
Gist、set、tie 等不是“Testing”的子字符串。它们是“测试”的一些排列的子串。你想要给定单词的所有排列的所有可能的子串吗?那将是一大堆字符串!如果我的快速计算是正确的(计算重复),则“测试”一词的 141120 个字符串。
-
所有可能的排列 - 现在只需阅读下面的回复 :)
-
@marstran 我得到 13700,实际测量生成序列的长度。
-
@WillNess 我也明白了。我的快速计算没有
distinct子句。