栈的应用——平衡符号

该博客介绍了一种使用Java栈数据结构来检查字符序列中括号是否平衡的方法。通过读取字符序列,遇到开括号时压入栈中,遇到闭括号时与栈顶元素比较并弹出,确保每个闭括号都有对应的开括号。如果在检查过程中发现不匹配或结束时栈非空,则说明字符序列不是平衡的。
摘要由CSDN通过智能技术生成
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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值