好久没来冒泡了,一来就是想跟大家分享点东西。今天就来说一下利用堆栈算法–来解决校验括号的合法性,首先说一下堆栈算法是采用先进后出FILO算法,每次push进来的元素都被放入栈底部;pop推出的则是后进来的元素(FIFO及LRU算法);再者就是括号的合法性,例如小括号,中括号,和大括号。可以出现嵌套的情况;下面举例几个不合法的以及合法的情况(情况太多就不一一列举):
不合法:
- {[(]]}
- )([]{}
- ({[]})
- [{ {)}]
合法:
-
({[()]})
-
{[]}
-
[[()]]
下面就用代码来实现,如何校验括号合法性:
- 首先我先封装了一下Stack这个类,为了更加的整洁
package com.zjc.springboot.util;
import java.util.Stack;
/**
* create by zhaojinchao on 2018/11/03
* 堆栈算法 - FILO
*/
public class StackUtil {
private Stack<Character> stack = new Stack<>();
/**
* 查看堆栈是否为空
*
* @