gpt4 book ai didi

java - 平衡括号检测?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:06 25 4
gpt4 key购买 nike

所以我需要创建一个程序来确定一组括号是否平衡,以及确定哪个括号是第一个“有问题的括号”,这意味着第一个括号不属于平衡对。

我只能想出一个程序来判断这组括号是否平衡,但想不出一个通用的检测第一个不属于一对的括号的方法。

例如:在“(())(()(”中,第五个括号是第一个有问题的括号。

我已经尝试了很多方法来找到第一个有问题的括号,但它们并不适用于每一种情况,所以如果您有更好的算法,请告诉我。我应该在考虑堆栈概念的情况下实现它。

最佳答案

1. set up a stack
2. scan the string char by char
2.1. for each left parenthesis "("
2.1.1. push its location onto the stack
2.2. for each right parenthesis ")"
2.2.1. if stack is empty then
2.2.1.1. you have too many right parentheses
2.2.1.2. current location is first offending location
2.2.2. else
2.2.2.1. pop one entry from the stack
3. after scanning the string
3.1. if stack is empty then
3.1.1. all parentheses balance
3.2. else
3.2.1. you have too many left parentheses
3.2.2. first entry on stack indicates first offending location

关于java - 平衡括号检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28789811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com