1. 程式人生 > >20. 有效的括號 (棧 難度1) 詳細題解

20. 有效的括號 (棧 難度1) 詳細題解

題目連結
在這裡插入圖片描述
棧的經典教學級題目了

class Solution {
public:
    bool isValid(string s) {
        if(s.length()%2 == 1)
            return false; //剪枝
        stack<char> tmp;
        
        for(int i = 0; i < s.length(); i++){
            if(tmp.empty() || s[i]=='(' || s[i]=='[' || s[i]=='{')
                tmp.
push(s[i]); else if((tmp.top()=='('&&s[i]==')') || (tmp.top()=='['&&s[i]==']') || (tmp.top()=='{'&&s[i]=='}')) tmp.pop(); else tmp.push(s[i]); } if(tmp.empty()) return true; else
return false; } };