首页 > 代码库 > Valid Parentheses
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.
这题很简单,直接使用栈来进行匹配,代码如下:
1 class Solution { 2 public: 3 bool isValid(string s) { 4 if( s.empty() ) return true; 5 stack<char> st; 6 st.push(‘#‘); 7 for(int i=0; i<s.length(); ++i) 8 if( s[i] == ‘(‘ || s[i] == ‘{‘ || s[i] == ‘[‘ ) //如果是左括号等地字符,那么直接放入栈中 9 st.push(s[i]);10 else { //如果是右括号等地字符,那么取出栈顶字符,并与是s[i]匹配,如果匹配失败,直接返回false,否则继续比较11 char ch = st.top();12 st.pop();13 if( (s[i] == ‘)‘ && ch != ‘(‘) || (s[i] == ‘}‘ && ch != ‘{‘) || (s[i] == ‘]‘ && ch != ‘[‘) ) //匹配不成功的情况14 return false;15 }16 return st.top() == ‘#‘; //如栈顶最后不为#,那么说明左空号等字符过多17 }18 };
Valid Parentheses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。