用算法来实现算数字符串求值这个问题看似复杂,我刚开始的思路是对每个算数表达式中的子算数表达式统计其左右两端的括号的个数,括号个数越多,则计算优先级越高。但是大师用简单的两个栈就实现了看似复杂的功能。所以给了我我在算法与数据结构方面的启示:
算法与数据结构,本质上是逻辑思维,也就是数学。处理数学问题,用欧拉那句名言,一切从定义触发。遇到复杂问题,先从最简单的角度思考解决问题的方式,如上文的问题。任何问题基本上都是算法与数据结构的推演变换,而数据结构的类型种类也万变不离其中。算法是依托于数据结构的,所以我们遇到问题后,首先从数据结构上思考用何种数据能最合适的解决问题,再配合算法再思考。而不是一上来就将问题复杂化。越是复杂的东西,他们原理和本质越单一,要学会这样思考问题的方式。