猿问

如何检查括号是否平衡?

编写一个被调用的函数validBraces,它接受一串大括号,并确定大括号的顺序是否有效。如果字符串有效,validBraces 应该返回 true,如果字符串无效,则返回 false。


所有输入字符串都将是非空的,并且只包含开括号(、闭括号)、开括号[、闭括号]、开大括号{和闭大括号}。


什么被认为是有效的?


如果所有大括号都与正确的大括号匹配,则认为一串大括号有效。例如:


(){}[]并且([{}])将被视为有效,同时(},[(])和[({})](]将被视为无效。


Specification

validBraces(braces)

检查括号顺序是否有效


参数

大括号:字符串 - 大括号顺序的字符串表示


返回值

Boolean - 如果大括号的顺序有效,则返回 true


例子:


    Input   Output

validBraces( "(){}[]" )     true

validBraces( "(}" )         false

validBraces( "[(])" )       false

validBraces( "([{}])" )     true


Smart猫小萌
浏览 216回答 2
2回答

拉丁的传说

这是非常简单的分配,您可以使用堆栈(即数组/列表)。然后,您可以在迭代通过字符输入串字符,一旦你发现左括号((,<,{等),你推送支架在栈上(或追加到数组,无所谓)。而当你遇到右括号(),>,}等),然后你弹出最后一个元素,从你的筹码。然后您检查括号类型是否匹配,所以当您匹配时,>您应该<从堆栈中弹出,否则您将停止抱怨括号不匹配(或其他)的过程。一旦您完成迭代而没有任何错误,您的堆栈应该是空的。如果您需要知道是否处理了任何括号,您可以使用计数器/标志。

慕田峪4524236

创建一个变量,该变量以递增方式计算 '(' 的数量,然后从该数量开始减少 -= 对于每个 ')' 最后,如果该变量为 = 0,则括号是平衡的。对不同类型的支架重复相同的操作。
随时随地看视频慕课网APP
我要回答