leetcode 20. 有效的括号 C++
难度:简单
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
代码
class Solution {
public:
bool isValid(string s) {
map<char,char>mp;
mp[')']='(';
mp[']']='[';
mp['}']='{';
stack<char>st;
int len=s.length();
for(char c :s){
if(c=='(' || c=='[' || c=='{')
st.push(c);
else{
if(!st.empty() && st.top() == mp[c]){
st.pop();
continue;
}else
return false;
}
}
return st.empty();
}
};