【栈】【字符】Leetcode 20 有效的括号

发布时间:2024-01-13 13:25:58

【栈】【字符】Leetcode 20 有效的括号

---------------🎈🎈题目链接🎈🎈-------------------

在这里插入图片描述

解法1 栈的操作(先进后出)

新建栈:Stack<Character> mystack = new Stack<>();
遍历字符串:for(int i = 0; i < s.length() ; i++){char ch = s.charAt(i)}
判断栈是否为空:mystack.isEmpty()
向栈内加入元素(栈顶):mystack.push()
从栈内移除元素(栈顶):mystack.pop()
获取栈顶元素:mystack.peek()

时间复杂度O(N)
空间复杂度O(N)

class Solution {
    public boolean isValid(String s) {
        if(s.length() == 0) return true;
        Stack<Character> mystack = new Stack<>();
        for(int i = 0; i < s.length(); i++){
            char ch = s.charAt(i);
            if(mystack.isEmpty()){
                mystack.push(ch);
                continue;
            }
            else if((mystack.peek()=='(' && ch==')') || (mystack.peek()=='[' && ch==']') || (mystack.peek()=='{' && ch=='}')){
                mystack.pop();
                continue;
            }
            else{
                mystack.push(ch);
            }

        }
        if(mystack.isEmpty()) return true;
        else return false;
    }
}
文章来源:https://blog.csdn.net/prince0520/article/details/135568531
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。