給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: 「()」
輸出: true
示例 2:
輸入: 「(){}」
輸出: true
示例 3:
輸入: 「(]」
輸出: false
示例 4:
輸入: 「([)]」
輸出: false
示例 5:
輸入: 「」
輸出: true
利用棧的特性,從左向右看他的每乙個字元,如果是左括號,將其壓入棧中,如果遇到右括號,看棧頂元素是否是與他匹配的左括號,若是,則彈出棧頂元素,反之為false。最後看棧內為空則說明為true,反之false。
class
solution
else
if(s[i]
==']'
)else
if(s[i]
=='}')}
return m.
empty()
?1:0
;}private
: stack<
char
> m;
};
LeedCode刷題感悟
尋找兩個有序陣列的中位數 其實這就是乙個二路歸併排序問題!如下在這裡插入 片 class solution if a length1 break while nums1 a nums2 b while a length1 num k nums1 a while b length2 num k num...
leetcode刷題第6題 有效的括號
題目 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 1.左括號必須用相同型別的右括號閉合。2.左括號必須以正確的順序閉合。注意 空字串可被認為是有效字串。思路 我的初步想法是用棧。考察知識點 c 棧的使用 具體見 class solution return false for int i...
LeedCode 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。輸入 輸出 true 分析 使用棧的資料結構 bool isvalid string s else if m stack.size 0 else if...