本文主要是【栈】——有效的括号的文章,如果有什么需要改进的地方还请大佬指出⛺️
作者简介:大家好,我是听风与他
☁️博客首页:CSDN主页听风与他
每日一句:狠狠沉淀,顶峰相见
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串 s
,判断字符串是否有效。
有效字符串需满足:
20. 有效的括号 - 力扣(LeetCode)
package practice;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
public class 有效的括号 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "()";
System.out.println(isValid(s));
}
public static boolean isValid(String s) {
char[] a = s.toCharArray();
if(s.length()%2!=0) {
return false;
}
Map<Character, Character> map = new HashMap<>();
map.put('}', '{');
map.put(')', '(');
map.put(']', '[');
Stack<Character> stack = new Stack<>();
for(int i=0;i<a.length;i++) {
if(map.containsKey(a[i])) {
if(stack.isEmpty()||stack.peek()!=map.get(a[i])) {
return false;
}
stack.pop();
}else {
stack.push(a[i]);
}
}
return stack.isEmpty();
}
}