编写一个被调用的函数validBraces,它接受一串大括号,并确定大括号的顺序是否有效。如果字符串有效,validBraces 应该返回 true,如果字符串无效,则返回 false。所有输入字符串都将是非空的,并且只包含开括号(、闭括号)、开括号[、闭括号]、开大括号{和闭大括号}。什么被认为是有效的?如果所有大括号都与正确的大括号匹配,则认为一串大括号有效。例如:(){}[]并且([{}])将被视为有效,同时(},[(])和[({})](]将被视为无效。SpecificationvalidBraces(braces)检查括号顺序是否有效参数大括号:字符串 - 大括号顺序的字符串表示返回值Boolean - 如果大括号的顺序有效,则返回 true例子: Input OutputvalidBraces( "(){}[]" ) truevalidBraces( "(}" ) falsevalidBraces( "[(])" ) falsevalidBraces( "([{}])" ) true
2 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
这是非常简单的分配,您可以使用堆栈(即数组/列表)。然后,您可以在迭代通过字符输入串字符,一旦你发现左括号((
,<
,{
等),你推送支架在栈上(或追加到数组,无所谓)。而当你遇到右括号()
,>
,}
等),然后你弹出最后一个元素,从你的筹码。然后您检查括号类型是否匹配,所以当您匹配时,>
您应该<
从堆栈中弹出,否则您将停止抱怨括号不匹配(或其他)的过程。一旦您完成迭代而没有任何错误,您的堆栈应该是空的。如果您需要知道是否处理了任何括号,您可以使用计数器/标志。
慕田峪4524236
TA贡献1875条经验 获得超5个赞
创建一个变量,该变量以递增方式计算 '(' 的数量,然后从该数量开始减少 -= 对于每个 ')' 最后,如果该变量为 = 0,则括号是平衡的。对不同类型的支架重复相同的操作。
- 2 回答
- 0 关注
- 215 浏览
添加回答
举报
0/150
提交
取消