gpt4 book ai didi

java - 不同符号的平衡括号算法

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

我们都知道常规的平衡括号算法,它在这里以多种变体出现,但我有另一个不同之处。

我知道如何使用堆栈或不使用堆栈来回答它,并且我已经阅读了此处和谷歌上与此问题相关的所有线程,但我没有找到与我的问题相匹配的任何答案。

让我们发明一种不同的数学,我们使用“**”、“$$”、“##”代替“()”、“{}”、“[]”。现在展示一个算法来检查 wheatear 括号是否平衡。

例如:*##$$##*** 是合法的,相当于 ([[{}]])() 甚至 ([]{})。如果它是真正的数学,它可能不是最好的不同符号意味着不同的东西,但它不是数学正在处理......

我尝试使用“常规”符号的解决方案并调整它以使用这个新符号,但现在我失败了。问题当然是我们无法区分打开和关闭符号。谁能提出解决方案?

这是求职面试中的一个问题,而在此之前我用常规符号解决了它。这并不重要,但我被要求使用 Java 回答。

最佳答案

只要在堆栈顶部有匹配项,您就可以贪婪地弹出。

def is_valid(string):
stack = []
for char in string:
if stack and char == stack[-1]:
stack.pop()
else:
stack.push(char)
return not stack

关于java - 不同符号的平衡括号算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34842155/

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