每日一道LeetCode——有效的括号
程序员文章站
2022-06-07 09:59:02
...
题目:
解法:利用栈(stack)和哈希Map
import java.util.*;
public class Solution10 {
public boolean isValid(String s) {
int n = s.length();
if (n % 2 == 1) {
return false;
}
Map<Character, Character> pairs = new HashMap<Character, Character>() {{
put(')', '(');
put(']', '[');
put('}', '{');
}};
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < n; i++) {
char ch = s.charAt(i);
if (pairs.containsKey(ch)) {
if (stack.isEmpty() || stack.peek() != pairs.get(ch)) {
return false;
}
stack.pop();
} else {
stack.push(ch);
}
}
return stack.isEmpty();
}
public static void main(String[] args){
Solution10 s = new Solution10();
System.out.println(s.isValid("{[()]}"));
}
}
推荐阅读
-
5、有效的括号-Python-LeetCode-20
-
LeetCode力扣有效的完全平方数
-
[leetcode](4.21)4. 有效子数组的数目
-
leetcode 921. 使括号有效的最少添加(Python)
-
5、有效的括号-Python-LeetCode-20
-
leetcode - 括号字符串是否有效
-
【每日一道算法题】Leetcode之longest-increasing-path-in-a-matrix矩阵中的最长递增路径问题 Java dfs+记忆化
-
#leetcode刷题之路36-有效的数独
-
LeetCode——有效的括号(括号匹配)
-
[题记]有效括号的嵌套深度-leetcode