java 字符串所有子串_java – 查找添加到给定字符串的所有子串的组合

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-24 05:17   15   0

这是一种方法:

static List> substrings(String input) {

// Base case: There's only one way to split up a single character

// string, and that is ["x"] where x is the character.

if (input.length() == 1)

return Collections.singletonList(Collections.singletonList(input));

// To hold the result

List> result = new ArrayList<>();

// Recurse (since you tagged the question with recursion ;)

for (List subresult : substrings(input.substring(1))) {

// Case: Don't split

List l2 = new ArrayList<>(subresult);

l2.set(0, input.charAt(0) + l2.get(0));

result.add(l2);

// Case: Split

List l = new ArrayList<>(subresult);

l.add(0, input.substring(0, 1));

result.add(l);

}

return result;

}

输出:

[java]

[j, ava]

[ja, va]

[j, a, va]

[jav, a]

[j, av, a]

[ja, v, a]

[j, a, v, a]

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP