-->
当前位置:首页 > 题库 > 正文内容

函数题:找出不匹配的括号

Luz3年前 (2022-04-26)题库1756
小王同学做事马虎,特别是做数学作业时,经常会漏掉小括号或左右小括号不匹配。设计一个算法,判断输入的数学公式中小括号是否匹配正确,如果括号匹配错误就给出提示。

例如:输入数学公式 '(1+2) / (4-1 = 1',检查后发现位置 7 的左括号不匹配,输出'位置7的括号不匹配'。注意:位置从1开始计算,并且数学公式里的空格不计算位置。

### 函数接口定义:
c++
def check(formula)


其中 formula 是传入的参数。 用字符串表示一个数学公式。函数返回当前公式 formula 中的小括号是否匹配,如果匹配返回括号匹配,否则,返回不匹配括号的位置(序号从1开始),即位置7的括号不匹配。

### 裁判测试程序样例:
c++
/* 请在这里填写答案 */

formula = input()
print(check(formula))


### 输入样例1:

in
(1+2) / (4-1) = 1


### 输出样例1:

out
括号匹配


### 输入样例2:

in
(1+2) / (4-1 = 1


### 输出样例2:

out
位置7的括号不匹配






答案:若无答案欢迎评论


def check(formula):
stack = []
formula = formula.replace(' ', '')
for index, char in enumerate(formula, 1):
if char == '(':
stack.append(index)
elif char == ')':
if len(stack) > 0:
stack.pop()
else:
return f'位置{index}的括号不匹配'
if len(stack) > 0:
return f'位置{stack.pop()}的括号不匹配'
return '括号匹配'

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。