Leetcode每日一题 —— 20. 有效的括号

SomeBottle 2026-10-01 09:44 1





思路


典型的栈应用题,每次遇到右括号时,栈顶应该有相应的左括号。最后栈不能为空。




代码


class Solution {
public:
bool isValid(string s) {
// 用栈即可
stack<char> stk;
for(char c:s){
switch(c){
case ')':
if(stk.empty()||stk.top()!='('){
return false;
}
stk.pop();
break;
case '}':
if(stk.empty()||stk.top()!='{'){
return false;
}
stk.pop();
break;
case ']':
if(stk.empty()||stk.top()!='['){
return false;
}
stk.pop();
break;
default:
stk.emplace(c);
}
}
// 注意最后栈不能为空
return stk.empty();
}
};
最新回复 (2)
  • tiansuohaoer 10-01 09:59
    1楼

    简单栈模拟


    class Solution {
    public:
    bool isValid(string s) {
    string q;
    for(auto c:s){
    if(c=='('||c=='['||c=='{')q+=c;
    else{
    if(q.empty()||abs(c-q.back())>2)return 0;
    q.pop_back();
    }
    }
    return q.empty();
    }
    };
  • JARK006 10-01 10:27
    2楼

    AI时代,感觉leetcode这些深究具体问题的代码实现,用处越来越少了。

    而负责把实际应用场景转述给AI,和AI沟通/协同实现真实业务需求的能力会越来越重要。

* 帖子来源Linux.do
返回