吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1696|回复: 7
收起左侧

[Java 转载] 【Java】leetcodet题目-有效括号利用栈LIFO实现(题解)

[复制链接]
孤樱懶契 发表于 2021-6-25 17:29
本帖最后由 孤樱懶契 于 2021-10-23 22:36 编辑

Leetcode题目 20

image-20210625172525394

执行结果

image-20210625172657711

Solution题解

class Solution {
    public boolean isValid(String s){

        Stack<Character> stack = new Stack<>();
        for(int i = 0 ; i < s.length(); i ++){
            char c = s.charAt(i);
            if(c == '(' || c == '[' || c== '{')
                stack.push(c);
            else {
                if(stack.isEmpty())
                    return false;

                char topChar = stack.pop();
                if(c == ')' && topChar != '(')
                    return false;
                if(c == ']' && topChar != '[')
                    return false;
                if(c == '}' && topChar != '{')
                    return false;

                }
            }
            return stack.isEmpty();
        }

        public static void main(String[] args){

            System.out.println((new Solution()).isValid("()[]{}"));
            System.out.println((new Solution()).isValid("(])]{}"));
        }
    }

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

santus36 发表于 2021-6-25 18:50
兄啊,哪有只放代码的题解啊
 楼主| 孤樱懶契 发表于 2021-6-25 19:08
KID丶 发表于 2021-6-25 20:29
无名氏wyw 发表于 2021-6-25 20:30
孤樱懶契 发表于 2021-6-25 19:08
这个代码,看不懂吗,基础的

笑飞了,哪有通过代码看算法的?
要是人家几百行的大分块,从上到下各种优化是非作者看得懂的?
layuai 发表于 2021-6-25 20:57
哈哈哈,这道题前几个月做过,挺简单的
Sentiment1996 发表于 2021-7-6 16:01
这个代码是有问题的,如果是“([{}])”则按照题目愿意是false的,,但是因为LIFO,并不是一次压栈一次出栈的顺序,会导致true
Sentiment1996 发表于 2021-7-6 16:04
Sentiment1996 发表于 2021-7-6 16:01
这个代码是有问题的,如果是“([{}])”则按照题目愿意是false的,,但是因为LIFO,并不是一次压栈一次出栈 ...

如果是我对题的理解有问题,就忽略吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表