package cn.thj.data_structures;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.Stack;
public class BalanceSigned {
/**
* @author 谭恒杰
*
*栈的一个主要应用是平衡符号。
*
*问题描述: 在编写代码并且编译时,难免会因为少写了一个')'和被编译器报错。也就是说,编译器会去匹配
*括号是否匹配。当你输入了一个'(',很自然编译器回去检查你是否有另一个')'符号与之匹配。如
*果所有的括号都能够成对出现,那么编译器是能够通过的。否则编译器会报错。例如字符序列“(a+b)”是匹配的,
*而字符序列"(a+b]"则不是。
*
* 算法描述如下: 创建一个空栈,读取字符序列直到结尾。如果字符是开放符号'(''[''{',将其入栈;如果是一个封闭
* 符号')'']''}',则当栈为空时报错。否则,将栈顶元素弹出。如果弹出的符号不是对应的开放符号,
* 则报错。当字符序列结束,判断栈是否为空,为空则报错。
*/
public static boolean isBalanceChar() {
Stack<Character> stack = new Stack<Character>();
String path = "D:/a.txt";
Fi
栈的应用——平衡符号
最新推荐文章于 2020-01-23 19:51:18 发布
该博客介绍了一种使用Java栈数据结构来检查字符序列中括号是否平衡的方法。通过读取字符序列,遇到开括号时压入栈中,遇到闭括号时与栈顶元素比较并弹出,确保每个闭括号都有对应的开括号。如果在检查过程中发现不匹配或结束时栈非空,则说明字符序列不是平衡的。
摘要由CSDN通过智能技术生成