python实现四则元算
来源:互联网 发布:哔哩哔哩录制软件 编辑:程序博客网 时间:2024/04/28 22:06
这个算法是在阅读大话数据结构中看到的,里面讲到在讲到实现四则元算最好的数据结构是栈;栈遵循后进先出,这与我们做数学题从左到右的认知是一样的。
有兴趣的同学可以去了解下,下面上代码
#coding:utf8def opNum(data): dataSpace = [] lableSpace = [] h = '*,/' for i in data: if i in "-,+,*,/,(,)": if i == ")": while lableSpace != []: k = lableSpace.pop() if k == "(": break f = dataSpace.pop() s = dataSpace.pop() dataSpace.append(str(eval("%s%s%s"%(s,k,f)))) else: if lableSpace != []: p = lableSpace.pop() lableSpace.append(p) if i in h and p not in h: lableSpace.append(i) elif i not in h and p in h: while lableSpace != []: f = dataSpace.pop() s = dataSpace.pop() b = lableSpace.pop() dataSpace.append(str(eval("%s%s%s"%(s,b,f)))) lableSpace.append(i) else: lableSpace.append(i) else: lableSpace.append(i) else: dataSpace.append(i) while lableSpace != []: f = dataSpace.pop() s = dataSpace.pop() b = lableSpace.pop() dataSpace.append(str(eval("%s%s%s"%(s,b,f)))) return int(dataSpace[0]) if __name__=='__main__': #data = ['9','+','(','3','-','1',')','*','3','+','10','/','2'] data = ['3','+','8','-','(','(','3','-','1',')','+','2',')','*','1'] print opNum(data)
0 0
- python实现四则元算
- objective-C中实现四则元算——支持+、-、*、/、sin、cos、tan、log等运算
- 简单四则元算的一种递归求解
- C#实现四则运算器
- 四则
- 实现一个四则加法器运算
- Java实现简易四则运算器
- JavaScript实现四则运算器程序
- JS实现加减乘除四则运算器
- 大话数据结构——栈的应用四则元算表达式求值(后缀表达式计算结果)
- 带括号的四则混合运算的算符优先算法java实现
- c++利用栈简单实现四则中缀表达式转后缀表达式,并算值。
- C语言实现四则混合运算
- JAVA实现简单四则混合运算
- c++实现复数的四则计算
- ruby实现四则计算器(输入优化)
- JAVA实现简单四则混合运算
- 利用堆栈实现四则表达式运算器
- ASP 网页乱码
- mongoose
- Oracle 表空间与数据文件
- 对于signalr的一些思考
- leetcode之数组中找两数和为指定值
- python实现四则元算
- mms建立数据连接过程(data connection)
- JAVA如何把一个float四舍五入到小数点后2位,4位,或者其它指定位数.
- eclipse adt bundle不显示Android SDK菜单
- ubuntu下firefox汉化
- Android API Guides 之 进程 线程 [译]
- ASP.NET网站支持多语言
- CMake和CCMake的区别 -- cmake-curses-gui
- Spark Streaming的三种运用场景