java为什么这种递归方法有效?
我正在编写一个函数来满足这些要求:
给定一个字符串,如果它是零对或多对括号的嵌套,如(())
或((()))
,则返回true。建议:检查第一个和最后一个字符,然后再检查其中的内容
nestParen("(())") → true
nestParen("((()))") → true
nestParen("(((x))") → false
现场显示的正确解决方案是:
public boolean nestParen(String str) {
if (str.equals("")) return true;
if (str.charAt(0) == '(' && str.charAt(str.length()-1) == ')')
return nestParen(str.substring(1,str.length()-1));
else
return false;
}
我不明白为什么会这样。如果给定的字符串有一个与(
不同的字符,比如"
,它会不会命中else大小写并返回false,而不是跳到下一个(
共 (0) 个答案