小学生一枚,自学信奥中,没参加培训机构,所以命名不规范、代码不优美是在所难免的,欢迎指正。
标签:
字符串、栈
语言:
C++
题目:
给定一个只包括 “(”,“)”,“{”,“}”,“[”,“]”
的字符串 s
,判断字符串是否有效。有效字符串需满足:
1.左括号必须用相同类型的右括号闭合。
2.左括号必须以正确的顺序闭合。
3.每个右括号都有一个对应的相同类型的左括号。
截图:
代码:
class Solution {
public:
bool IsLift(char a)
{if(a=='(' or a=='[' or a=='{'){return true;}return false;
}bool isValid(string s) {if(s.size()&1)return false;stack<char> s1;for(int i=0;i<s.size();i++){if(IsLift(s[i])){s1.push(s[i]);}else{if(s1.empty()){return false;}else{if((s1.top()=='(' and s[i]==')') or(s1.top()=='[' and s[i]==']')or(s1.top()=='{' and s[i]=='}') ){s1.pop();}else{return false;}}}}if(s1.empty())return true;return false;}
};