【Java】leetcodet题目-有效括号利用栈LIFO实现(题解)
本帖最后由 孤樱懶契 于 2021-10-23 22:36 编辑# Leetcode题目 20
!(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210625172525394.png)
# 执行结果
!(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210625172657711.png)
# Solution题解
```java
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
这个代码,看不懂吗,基础的
笑飞了,哪有通过代码看算法的?
要是人家几百行的大分块,从上到下各种优化是非作者看得懂的? 哈哈哈,这道题前几个月做过,挺简单的 这个代码是有问题的,如果是“([{}])”则按照题目愿意是false的,,但是因为LIFO,并不是一次压栈一次出栈的顺序,会导致true Sentiment1996 发表于 2021-7-6 16:01
这个代码是有问题的,如果是“([{}])”则按照题目愿意是false的,,但是因为LIFO,并不是一次压栈一次出栈 ...
如果是我对题的理解有问题,就忽略吧
页:
[1]