任务详情根据栈的结构特点,结合已提供的 stack(堆栈)类代码,完成以下括号左右匹配检查的实现。 任务要求有效括号字符串需满足: 1. 左括号(含英文大括号和英文小括号两种)必须用相同类型的右括号闭合; 2. 左括号必须以正确的顺序闭合; 3. 注意空字符串可被认为是有效字符串; 4. 本任务考察栈的知识,请不要使用列表(list)的属性和功能; 5. 返回数据类型为布尔类型(bool); 6. 所匹配的字符串包含如下:{} [] () <>,均为英文字符。 测试用例输入:'((()))' 输出:True
输入:'({())' 输出:False
输入:'' 输出:True
[color=rgb (128, 128, 128)][font="][size=9.6pt][i] # 1. [/i][/size][/font][/color][color=rgb (128, 128, 128)][font=宋体, monospace][size=9.6pt][i]运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。[/i][/size][/font][/color][color= #808080][i] # 2. [/i][/color][color= #808080][i]您编写代码的区域需要限制在[/i][/color][color = #808080][i]Solution[/i][/color][color = #808080][i]类或其他类和函数体内,保证输入与输出符合任务要求即可。 [/i][/color][color= #808080][i] # 3. [/i][/color][color= #808080][i]点击[/i][/color][color = #808080][i] “提交代码”[/i][/color][color= #808080][i]按钮,系统将查看程序是否正确,并保存代码,记录任务数据。 [/i][/color][color= #808080][i] # 4. [/i][/color][color= #808080][i]提交代码次数越多,任务得分越低。 [/i][/color][color= #808080][i] # 5. [/i][/color][color= #808080][i]点击右上方[/i][/color][color = #808080][i] “结束任务”[/i][/color][color= #808080][i]按钮,系统将在后台计算任务得分,任务结束。 [/i][/color][color= #808080][i] # -*- coding : utf-8 -*- [/i][/color][color= #000080][b]class [/b][/color]Stack: [color= #000080][b]def [/b][/color][color= #b200b2]__init__[/color] ([color= #94558d]self[/color], [color= #808080]limit =10[/color]): self.__stack = [] self.limit = limit [color= #000080][b]def [/b][/color]push (self, data): [color= #808080][i] # [/i][/color][color= #808080][i]入栈操作 [/i][/color][color= #808080][i] [/i][/color][color= #000080][b]if [/b][/color][color= #000080]len[/color] (self.__stack) >= self.limit: [color= #000080][b]raise [/b][/color][color= #000080]IndexError[/color] ([color= #008000][b] self.__stack.append (data) [color= #000080][b]def [/b][/color]pop (self): [color= #808080][i] # [/i][/color][color= #808080][i]出栈操作 [/i][/color][color= #808080][i] [/i][/color][color= #000080][b]if [/b][/color]self.__stack: [color= #000080][b]return [/b][/color]self.__stack.pop () [color= #000080][b]else[/b][/color] : [color= #000080][b]raise [/b][/color][color= #000080]IndexError[/color] ([color= #008000][b] [color= #000080][b]def [/b][/color]peek (self): [color= #808080][i] # [/i][/color][color= #808080][i]查看栈顶元素 [/i][/color][color= #808080][i] [/i][/color][color= #000080][b]return [/b][/color]self.__stack[-[color= #0000ff]1[/color]] [color= #000080][b]if [/b][/color]self.__stack [color= #000080][b]else None [/b][/color][color= #000080][b] [/b][/color][color= #000080][b] [/b][/color][color= #000080][b]def [/b][/color]size (self): [color= #808080][i] # [/i][/color][color= #808080][i]查看栈大小 [/i][/color][color= #808080][i] [/i][/color][color= #000080][b]return [/b][/color][color= #000080]len[/color] (self.__stack) [color= #000080][b]def [/b][/color]is_empty (self): [color= #808080][i] # [/i][/color][color= #808080][i]判断栈是否为空 [/i][/color][color= #808080][i] [/i][/color][color= #000080][b]return False if [/b][/color][color= #000080]len[/color] (self.__stack) [color= #000080][b]else True [/b][/color][color= #000080][b] [/b][/color][color= #000080][b] [/b][/color][color= #000080][b]class [/b][/color]Solution: [color= #000080][b]def [/b][/color]balancedParentTheses ([color= #94558d]self[/color], str_pun: [color= #000080]str[/color] ) -> [color= #000080]bool[/color] : [color= #808080][i] # [/i][/color][color= #808080][i]从此处开始编写代码 [/i][/color][color= #808080][i] [/i][/color][color= #808080][i] [/i][/color][color= #000080][b]pass [/b][/color][color=rgb (0, 0, 128)][font="][size=9.6pt][b] [/b][/size][/font][/color][color=rgb (128, 128, 128)][font="][size=9.6pt][i] # [/i][/size][/font][/color][color=rgb (128, 128, 128)][font=宋体, monospace][size=9.6pt][i]代码编写结束[/i][/size][/font][/color]
|