20-有效的括號
阿新 • • 發佈:2020-08-05
主要是用棧的思想,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]);View Codeif(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; } };