224. Basic Calculator,227. Basic Calculator II

实现一个计算器。
首先这是一个复杂问题,需要分成一系列的小问题来解决。在这里我们可以分成字符串转换成数字,如何处理空格,如何进行一个算式的运算,如何处理括号等。

  1. 字符串转换成数字
    从给定的字符串中一个一个读字符,将该字符和以前的字符进行运算得到数字。
  2. 如何处理空格
    直接忽略即可。
  3. 如何进行一个算式的运算
    比如1+3+4-3,可以看作四个有符号数进行相加。
    对于227题,添加两种情况即可。乘除法优先级高,将乘除号和两个运算数结合起来看作一个整体,比如2+3*5/2-》2+15/2-》2+7.5;最终还是转化成了有符号数运算。
  4. 如何处理括号
    括号里面的算式需要先进行运算,在把括号看成一个整体,与前面的算式进行运算,这里可以理解成递归。

你可能感兴趣的:(224. Basic Calculator,227. Basic Calculator II)