假设一组括号为:(()()),怎么找到配对的括号位置呢?

思路:本题目本身是c语言的一道竞赛练习题,主要考察的是栈的特点,后进先出,在此不过多的偏离话题,既然要用scratch来解决,我们就利用列表,从左往右开始,遇到左括号,就把这个括号和对应的位置记录下来存入列表的第一位,当遇到右括号,就取出前一个左括号的位置,然后把这个左括号从列表中删除,这样就完成了配对,具体可以看下面的示例图:

scratch算法练习-括号匹配【参考答案】

如图,当遇到第一个右括号,是第三个,那么前一个左括号是2,因此2、3配成一对,将2位置的左括号删除,就这样往下进行即可。

源程序下载:scratch算法练习-括号匹配

程序截图:

scratch算法练习-括号匹配【参考答案】

本站内容,禁止转载

本站内容未经许可,禁止任何网站及个人进行转载。