首页 > 代码库 > leetcode.20-----------Valid Parentheses
leetcode.20-----------Valid Parentheses
Given a string containing just the characters ‘(‘
, ‘)‘
, ‘{‘
, ‘}‘
, ‘[‘
and ‘]‘
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
class Solution { public: bool isValid(string const& s) { string left = "([{"; string ringht = ")]}"; stack<char> tmp; for (auto c : s) { if (left.find(c) != string::npos) { tmp.push(c); } else { if (tmp.empty() || tmp.top() != left[ringht.find(c)])//栈为空或着没有找到匹配的 return false; else//找到匹配了 就弹出栈顶的元素 tmp.pop(); } } return tmp.empty();//如果遍历完了,栈里面还有元素说明没有完全匹配 } };
方法二:比较直接的匹配,直观一下就能看明白
class Solution { public: bool isValid(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function stack<char> stacks; for (int i = 0; i < s.size(); i++) { switch (s[i]) { case '(': case '[': case '{': stacks.push(s[i]); break; case ')': if (stacks.empty() || stacks.top() != '(') { return false; } stacks.pop(); break; case ']': if (stacks.empty() || stacks.top() != '[') { return false; } stacks.pop(); break; case '}': if (stacks.empty() || stacks.top() != '{') { return false; } stacks.pop(); break; default: return false; } } return stacks.empty(); } };
leetcode.20-----------Valid Parentheses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。