美文网首页数据结构与算法
Leetcode 20 有效的括号

Leetcode 20 有效的括号

作者: itbird01 | 来源:发表于2021-12-17 07:10 被阅读0次

20. 有效的括号

题意:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

解题思路

解法1:
1.分析题意,可以使用栈的设计解决此问题
2.遍历字符串s每个字符,如果栈顶元素与当前字符不匹配,则入栈,如果匹配,则出栈
3.上面讲到匹配,其实很简单, 就是判断两个字符是否是成对的 '(',')'、'{','}'、'[',']'

解题遇到的问题

后续需要总结学习的知识点

##解法1
import java.util.Stack;

class Solution {
    public static boolean isValid(String s) {
        char[] cs = s.toCharArray();
        Stack<Character> stack = new Stack<Character>();
        for (int i = 0; i < cs.length; i++) {
            if (!stack.isEmpty() && isEquals(stack.peek(), cs[i])) {
                stack.pop();
            } else {
                stack.push(cs[i]);
            }
        }
        return stack.isEmpty();
    }

    public static boolean isEquals(char a, char b) {
        if (a == '(' && b == ')') {
            return true;
        } else if (a == '[' && b == ']') {
            return true;
        } else if (a == '{' && b == '}') {
            return true;
        } else {
            return false;
        }
    }
}

相关文章

网友评论

    本文标题:Leetcode 20 有效的括号

    本文链接:https://www.haomeiwen.com/subject/mtxpfrtx.html