【发布时间】:2021-07-29 18:35:29
【问题描述】:
我的编程任务有问题。我的工作是编写一个获取字符串并将其括起来的方法。它应该以数组的形式返回。例如:
String s = "ab";
那么数组必须是:
[ab, (a)b, ((a)(b)), a(b), (ab), (a)(b), ((a)b), (a(b))]
重要的是没有结果出现两次。同样重要的是,不应有括号直接将另一对括号括起来,例如((a))b 或(((a)(b)))。如果它为空或为零,则结果也必须是一个空数组。不允许使用()。我只能使用String 类的方法。类Brexit 包括一个称为append 的方法。使用这种方法,我可以将字符串附加到数组的末尾。现在这是我到目前为止的代码,但我不知道如何继续。
public class Brackets {
public static String[] bracket(BrExIt b, String s) {
String[] array = new String[]{};
if (s == null || s == "") {
return array;
}
if (s.length() == 1) {
array = b.append(array, s);
array = b.append(array, "(" + s + ")");
return array;
} else {
int a = 0;
return bracket(b, s.substring(a + 1, s.length() - 1));
}
}
}
【问题讨论】:
-
您能否更详细地解释所需的包围策略。该模式对于长度为 2 的输入是明确的,但对于较长的字符串则不是。例如,“(ab)c”是给定“abc”的必需输出吗?
-
是的,还有(abc),(a)bc,((ab)c)......
标签: java arrays string recursion brackets