题目链接
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;
}
};