本文主要是介绍leetcode No20. Valid Parentheses,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C++中栈(stack)的用法
s.empty() //如果栈为空返回true,否则返回false
s.size() //返回栈中元素的个数
s.pop() //删除栈顶元素但不返回其值
s.top() //返回栈顶的元素,但不删除该元素
s.push() //在栈顶压入新元素
Question:
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.
大意是判断括号是否合法
Algorithm:
Accepted Code:
class Solution {
public:bool isValid(string s) {stack<char> res;for(int i=0;i<s.size();i++){if(s[i]=='('||s[i]=='{'||s[i]=='[')res.push(s[i]);else if(s[i]==')'||s[i]=='}'||s[i]==']'){if(res.empty()==1)return false;if((res.top()=='('&&s[i]==')')||(res.top()=='{'&&s[i]=='}')||(res.top()=='['&&s[i]==']'))res.pop();else return false;}}return res.empty();}
};
这篇关于leetcode No20. Valid Parentheses的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!