/*本题直接采用栈模拟的方式。*/
class Solution {
public:
bool isValid(string s) {
if(s.empty()) return true;
string res("");
for(int i = 0; i < s.size(); ++i){
if(s[i] == '(' || s[i] == '[' || s[i] == '{'){//入栈
res += s[i];
}
else{
if(res.empty()) return false;//没有可以匹配的括号
if(s[i] == ')' && res[res.size()-1] == '(') res.pop_back();//出栈
else if(s[i] == ']' && res[res.size()-1] == '[') res.pop_back();//出栈
else if(s[i] == '}' && res[res.size()-1] == '{') res.pop_back();//出栈
else return false;//括号不匹配
}
}
if(res.empty()) return true;
else return false;
}
};LeetCode之Valid Parentheses
最新推荐文章于 2024-02-05 23:11:57 发布
本文介绍了一种使用栈数据结构来验证括号是否正确匹配的方法。通过遍历输入字符串,遇到开括号则压入栈中,遇到闭括号时检查栈顶元素是否为对应的开括号,以此来判断括号序列的有效性。
894

被折叠的 条评论
为什么被折叠?



