[leetcode]Valid Parentheses
程序员文章站
2022-01-02 10:22:53
...
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()"
Output: true
分析:
验证括号的有效性,可以利用栈的先入后出特性。若当前字符为左括号,压入栈中;若为右括号,若此时栈为空,返回false,不为空取栈顶元素,若不为对应的左括号则为false,否则弹出栈顶有效的左括号。若最后压入栈中的左括号都被弹出即栈为空时,此时的括号都是有效的。
class Solution {
public:
bool isValid(string s) {
stack<char> st;
for(char c : s){//遍历字符c
if(c == '('|| c == '{' || c == '['){
st.push(c);
}else{
if(st.empty()) return false;
else if(c == ')' && st.top() != '(') return false;
else if(c == '}' && st.top() != '{') return false;
else if(c == ']' && st.top() != '[') return false;
else st.pop();
}
}
return st.empty();
}
};
推荐阅读
-
leetcode刷题指南什么语言(零基础刷leetcode)
-
LeetCode有序矩阵中第K小的元素(Python语言)
-
IOS系统中使用new Date()报错valid Date
-
python(leetcode)498. 对角线遍历
-
Leetcode算法【114. 二叉树展开为链表】
-
Spring @Valid @Validated实现验证
-
LeetCode 50. Pow(x, n)
-
html5中valid、invalid、required的定义
-
[leetcode]不同路径三连击~
-
LeetCode——Department Highest Salary(花式使用IN以及GROUP BY)