【力扣】20.有效的括号
2023-12-28 19:40:09
家人们,看这排序,一看就很简单,对吧?不对,我觉得还挺不是很容易的,哈哈哈。
?题解:
在看题目的时候,我一开始的解题思路就挺复杂的。题目说了”左括号必须以正确的顺序闭合“,我完美略过。
这道题是栈的常考题型,应该是吧。我们可以用哈希表的形式,键值对嘛,然后( [ { 这类的入栈,然后碰到其与之相对应的那就出栈,最后的情况那要是栈为空的情况就返回true.反之则返回false,不考虑( [ ) ]的这种情况,如果考虑,那就false了
代码如下:
class Solution {
public:
bool isValid(string s) {
//解题思路:([{这类的入栈,然后碰到其与之相对应的那就出栈,最后的情况那要是栈为空的情况就返回true.反之则返回false,不考虑([)]的这种情况,如果考虑,那就false了
unordered_map<char,char>pairs={
{')','('},
{']','['},
{'}','{'}
};
stack<char> stk;
for(char c:s){
if(pairs.count(c)){
if(stk.empty()||stk.top()!=pairs[c])
return false;
stk.pop();
}else{
stk.push(c);
}
}
return stk.empty();
}
};
文章来源:https://blog.csdn.net/qq_62649563/article/details/135276272
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!