leetcode-20:Valid Parentheses有效的括號(括號匹配)
阿新 • • 發佈:2018-12-22
題目:
Given a string containing just the characters An input string is valid if:
Note that an empty string is also considered valid. Example 1: Input: "()" Output: true Example 2: Input: "()[]{}" Output: true Example 3: Input: "(]" Output: false Example 4: Input: "([)]" Output: false Example 5: Input: "{[]}" Output: true |
給定一個只包括 有效字串需滿足:
注意空字串可被認為是有效字串。 示例 1: 輸入: "()" 輸出: true 示例 2: 輸入: "()[]{}" 輸出: true 示例 3: 輸入: "(]" 輸出: false 示例 4: 輸入: "([)]" 輸出: false 示例 5: 輸入: "{[]}" 輸出: true |
思路:借用棧。若為({[則入棧,若當前元素為})],看當前棧是否為空並與對應括號匹配, 不匹配返回false,匹配就出棧。知道最終棧為空。
class Solution {
public:
bool isValid(string s) {
stack<char> stk;
for(int i=0;i<s.size();++i)
{
if(s[i]=='('||s[i]=='{'||s[i]=='[') stk.push(s[i]);
else
{
if(stk.empty() ||(s[i]==')'&&stk.top()!='(') ||
(s[i]=='}'&&stk.top()!='{') || (s[i]==']'&&stk.top()!='[') )
return false;
stk.pop();
}
}
return stk.empty();
}
};