Go语言中文网,致力于每日分享编码知识,欢迎关注我,会有意想不到的收获!
![a20a5fb198065d29d05d00900614bcd6.png](https://i-blog.csdnimg.cn/blog_migrate/27352eec7f469ae13c08fe81f2888cd7.jpeg)
1 题目描述
实现一个可以对简单字符串表达式进行计算的计算器。该字符串表达式由+,-,(,)及非负整数组成。
例子1:
输入:"1 + 1"
输出:2
例子2:
输入:" 2-1 + 2 "
输出:3
例子3:
输入:"(1+(4+5+2)-3)+(6+8)"
输出:23
注:
1)假定给定的表达式总是有效的;
2)勿使用内置函数直接求得结果。
题目出处:
https://leetcode.com/problems/basic-calculator/
2 解决思路
1)去除字符串表达式中的所有空格;
2)遍历字符数组;
2.1)若当前字符为[0-9]的数值,一直向后找,直至取出整个整数,根据前一个字符是+或-,将当前结果加上或减去该整数;
2.2)若当前字符是'(',一直向后找,找到跟该左括号匹配的')',将之间的表达式同样采用2步骤计算结果。根据前一个字符是'+'或'-',将当前结果加上或减去该子表达式结果。
3)至字符数组最后一个字符结束。
3 golang实现代码
https://github.com/olzhy/leetcode/blob/master/224_Basic_Calculator/test.go
![b60bcf6cd691faff84e011120f7f8096.png](https://i-blog.csdnimg.cn/blog_migrate/2a0f672f95efae5aa4864b6094134d01.jpeg)
原文链接:https://leileiluoluo.com/posts/leetcode-basic-calculator.html
本文作者:磊磊落落的博客,原创授权发布