请不要提供完整的解决方案!
给定一个包含一对括号的字符串,递归计算一个仅由括号和它们组成的新字符串 内容,所以" xyz(abc)123"收益率"(abc)"。
parenBit(" xyz(abc)123")→"(abc)"
parenBit(" x(你好)")→"(你好)"
parenBit("(xy)1")→"(xy)"
我的解决方案不起作用
public String parenBit(String str) {
char c;
int start = 0;
int end = 0;
for(int i=0; i < str.length(); i++){
c = str.charAt(i);
if(c == '('){
start = i;
} if(c == '('){
end = i;
return str.substring(start, end);
}
}
return "andrew";
}
它不打印任何东西。为什么呢?
答案 0 :(得分:0)
我认为你的第二个条件是错误的。你正在检查(不是)
答案 1 :(得分:0)
public static String parenBit(String str) {
char c;
int start = 0;
int end = 0;
for(int i=0; i < str.length(); i++){
c = str.charAt(i);
if(c == '('){
start = i;
} if(c == ')'){
end = i;
return str.substring(start + 1, end);
}
}
return "";
}
更改说明:
首先,将第二个if更改为if (c == ')')
以检查右括号。其次,start
变量是一个,所以我加了1。最后,如果没有找到括号,我认为你不应该返回andrew
。所以我把它改成了一个空字符串。