20 有效的括號

2021-10-20 22:18:50 字數 1143 閱讀 8606

給定乙個只包括 '(',')','','[',']' 的字串 s ,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

示例 1:

輸入:s = "()"

輸出:true

示例 2:

輸入:s = "(){}"

輸出:true

示例 3:

輸入:s = "(]"

輸出:false

示例 4:

輸入:s = "([)]"

輸出:false

示例 5:

輸入:s = ""

輸出:true

好像沒有什麼暴力pj的方法,只能使用棧。

直接貼乙個題解,非常清晰,可以說是非常清晰了

這個解法已經十分清晰了,基本只要知道棧的 「先入後出」原則,明白棧頂棧底的概念,進棧出棧的概念就能直接看懂。

class solution 

else if(c=='');

}else if(c=='[')

//如果不是右括號,則棧頂元素出棧

//因為按照上述遍歷方式,順序遍歷到左括號,右括號就進棧的方式,棧裡元素正常出棧就是符合結果的標準答案

//到此else if 則必然是遍歷到了右括號,而出棧元素就是正確答案,因此,對比即可

//若棧空或者棧內元素出棧與當前右括號不同,則錯誤

else if(stack.isempty()||stack.pop()!=c)

}//括號一一對應,遍歷完成後,棧應該為空,空 1 對, 非空 0 錯

return stack.isempty();}}

棧操作:pop()出棧    push()進棧

20 有效括號

1.題目描述 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。2.示例 輸入 輸出 true輸入 輸出 false3.思路 可以採用棧來解決,第一步 判斷棧是否空,為空則進乙個括號,若不為空,則判斷當前括號和棧頂元素是否匹配,不...

20 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...

20 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...