
20.有效的括号
(今天看栈啦啦啦啦啦啦)
- 题目描述
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
20.有效的括号
- 代码
开始用栈不太知道怎么用,直接参考啦(自己又写了一遍)
class Solution {
public:
bool isValid(string s) {
//遇到左括号入栈,遇到右括号时,将栈顶元素d出
//看是否匹配
map<char,char> mp;
mp.insert({')','('});
mp.insert({']','['});
mp.insert({'}','{'});
stack<char> stk;
for(char ch : s){
if(mp.count(ch)){//"右括号"
if(stk.empty()|| mp[ch] != stk.top()){//栈为空或者栈顶d出的元素不为相应左括号
return false;
}
else{//为相应左括号,d出
stk.pop();
}
}
else{//"左括号"
//入栈
stk.push(ch);
}
}
//还有剩余左括号
return stk.empty();
}
};
参考题解
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)