1.基本思想
/**
* 1、将字符串的每个字符进行遍历
* 2、如果发现是左括号,那么将该字符压入到栈中
* 3、如果是右括号,先去存储好的栈顶找到相应的值,
* 4、若栈为空返回false,若匹配,pop该左括号,若不匹配也返回false
* 5、最后检验栈中的做括号是否全部都匹配(栈最后为空),返回true,否则返回false
*/
2.代码实现
package com;
import java.util.HashMap;
import java.util.Stack;
public class Test {
public static HashMap<Character,Character> map = new HashMap<>();
public static Stack<Character> stack = new Stack<>();
static {
map.put(')','(');
}
public boolean isMatch(String str) {
char[] ch = str.toCharArray();
for (char c:ch){
//判断是否是左括号,则压栈
if(map.containsValue(c)){
stack.push(c);
}
//判断是否是右括号
if(map.containsKey(c)){
//校验栈是否为空
if(stack.isEmpty()