題目鏈接
https://leetcode-cn.com/problems/valid-parentheses/description/
題目分析:
一道水題,利用棧就好了,當遇到"[","{","("時入棧,當遇到"]"並且棧頂是"["時棧頂出棧,"}",")"同理,當以上兩種情況都不滿足時,直接無效,後面的不用判斷 ,否則最後若棧空則有效,否則無效。
class Solution {
public:
bool isValid(string s) {
char st[10000];
int top = -1;
int ok = 1;
for(int i = 0;i<s.length();i++){
if(s[i] == '('||s[i]=='['||s[i]=='{'){
top++;
st[top] = s[i];
} //配對成功出棧
else if(s[i] == ')'&&top!=-1&&st[top] == '(')top--;
else if(s[i] == ']'&&top!=-1&&st[top]=='[')top--;
else if(s[i] == '}'&&top!=-1&&st[top] == '{')top--;
else {ok = 0;break;} //直接跳出
}
if(ok&&top==-1)return true;
else return false;
}
};