
1 题目描述
实现一个可以对简单 字符串 表达式进行计算的计算器。该字符串表达式由+,-,(,)及非负整数组成。
例子1:
输入:”1 + 1″
输出:2
例子2:
输入:” 2-1 + 2 ”
输出:3
例子3:
输入:”(1+(4+5+2)-3)+(6+8)”
输出:23
注:
1)假定给定的表达式总是有效的;
2)勿使用内置函数直接求得结果。
题目出处:
2 解决思路
1)去除字符串表达式中的所有空格;
2)遍历字符数组;
2.1)若当前字符为[0-9]的数值,一直向后找,直至取出整个整数,根据前一个字符是+或-,将当前结果加上或减去该整数;
2.2)若当前字符是'(‘,一直向后找,找到跟该左括号匹配的’)’,将之间的表达式同样采用2步骤计算结果。根据前一个字符是’+’或’-‘,将当前结果加上或减去该子表达式结果。
3)至字符数组最后一个字符结束。
3 golang实现代码

原文链接:
本文作者:磊磊落落的博客,原创授权发布