提问,高手进来回答!
创始人
2025-07-14 06:35:37
0次
提问,高手进来回答!
楼上把C实现的代码都直接给出来了。
楼主没太说清楚括号间是否也要求匹配?即大括号应在中括号之外,中括号应在小括号之外?
设计一个算法思想如下:
开始
读入字符串
对每一个读入的字符:(While或者For循环)
判断是否是{或}
是 不是
大括号标志位+1或-1 next
递归调用此程序,判断是否为[或]
是 不是
中括号标志位+1或-1 next
递归调用此程序,判断是否为(或)
是 不是
小括号标志位+1或-1 next
循环结束
检查标志位,输出信息。
应该写成递归调用,即高级括号内的低级括号不匹配即要报错。
即能够检测出这种情况:
{[(1+1)+1(]+[)1+(1+1)]}
只要第一个中括号里的小括号不匹配就要跳出递归。
实现上可以定义int main,并在判断本层括号前检查低一层返回的值,如不匹配即给出提示。
相关内容