1. 程式人生 > 實用技巧 >20-有效的括號

20-有效的括號

主要是用棧的思想,c++裡有棧的模板,可以直接呼叫。

思想:對字元每一項檢查,如果是左括號就入棧,如果是右括號,先檢查是否棧空,如果

棧空,肯定不行,接下來檢查左右括號是否對應,入如果對應,就出棧;最後迴圈完檢查

棧是否為空,如果非空,說明還有沒有與之匹配的左括號,反之,則正好匹配完。

class Solution {
public:
    bool isValid(string s) {
        stack<int> s1;
        for(int i=0;i<s.length();i++)
        {
            if(s[i]=='(' || s[i]=='{'||s[i]=='[')
            s1.push(s[i]);
           
if(s[i]==')' || s[i]=='}'||s[i]==']') { if( s1.empty())return false; char str=s1.top(); if(s[i]==')'&& str!='(' )return false; if(s[i]==']'&& str!='[' )return false; if(s[i]=='}'&& str!='{' )return false
; s1.pop(); } } if(s1.empty()) return true; return false; } };
View Code