我正在編寫一個函數來滿足這些要求: 給定一個字符串,如果它是嵌套的零對或多對括號(如(())
或((()))
),則返回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而不是跳到下一個(
?
你是對的; 'nestParen(「((x))」)'將返回false。 – 2014-10-17 17:31:18
是的,它會像要求說的那樣。 – 2014-10-17 17:31:19
這些字符串都不包含'「'字符 – AdamMc331 2014-10-17 17:31:20