采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
这道题就是先进行乘除在计算加减,但是呢题解那里有个疑问
num = num * 10 + s[i].charCodeAt() - '0'.charCodeAt();、
但是这里这个num为什么要这么计算呢搞不懂?
因为数字不仅仅可能只有一位,而可能有多位。如何通过 “123” 这个字符串得到 123 这个数字,就是用这个式子。
可以执行一下 "123+456" 这个字符串,看一下在解析这个字符串的过程中,程序的每一步是如何运行的?有没有走这句话?走这句话的时候,是在做什么?整个程序最终是如何一步一步得到计算结果的?
继续加油!:)
老师就是有没有其他方式解决这个问题呢,通常不会想到对num做这么多运算
这个操作是把一个字符串转换成一个数字的基本方法。这不是想得到想不到的问题,这是标准的做法。(没有接触过计算机的同学,也想不到使用 bfs 求解无权图的最短路径。但如果要求解无权图的最短路径,bfs 是标准做法。) 依然是,请先解决这个问题:如何通过 “123” 这个字符串,得到 123 这个数字?如果你解决了这个问题,把这个问题的方法套到这个表达式计算中就好。在表达式计算中,对于多位数字的转换,就是“给你一个字符串,将这个字符串转换成相应的数字”这个子问题。 当然,标准库中可能会提供一些函数能够直接做字符串到数字的转换,比如 C 中的 atoi 函数,比如 Java 中的 Integer.parseInt 函数,你可以先在表达式中,将整个表示数字的字符串截取出来,然后用这些函数去做转换。但这些函数底层的逻辑,依然是这个式子。 继续加油!:)
懂了这个相当于是一个公式而已,学了才知道。
登录后可查看更多问答,登录/注册
课程配套大量BAT面试真题,高频算法题解析,强化训练
1.1k 13
1.1k 12
675 11
1.5k 10
1.2k 10