最又边的数字含义刚开始是2现在是5,是什么原因

给定一个如下输入格式的字符串(1,(2,3),(4,(5,6),7))括号内的元素可以是数字含义也可以是另一个括号,请实现一个算法消除嵌套的括号比如把上面的表达式变成:(1,2,3,4,5,6,7),如果表达式有误请報错

答:说一下思路,这个题有好几种解法:

方法一:最简单暴力的方法正则表达式匹配成对的括号,并替换为空值开头和结尾括號保留,未匹配度报表达式有误

方法二:是用栈,遍历这个字符串的字符(当然跳过开头和结尾的括号)。然后遇到左括号就入栈遇到右括号就出栈,过程中如果有对空栈做出栈操作就报表达式错误结束时栈恰好为空,否则也报表达式错误

方法三:用栈操作浪费涳间资源,因此我们可以用整数加减来代替用一个初始值为0的整数,然后遍历这个字符串的字符(当然跳过开头和结尾的括号)。然後遇到左括号整数就加一遇到右括号整数就减一,中间任何时候整数为负数或者结束后整数不为0都报表达式错误。

}

我要回帖

更多关于 数字 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信