博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode227. Basic Calculator II(思路及python解法)
阅读量:2242 次
发布时间:2019-05-09

本文共 1254 字,大约阅读时间需要 4 分钟。

Implement a basic calculator to evaluate a simple expression string.

The expression string contains only non-negative integers, +-*/ operators and empty spaces . The integer division should truncate toward zero.

Example 1:

Input: "3+2*2"Output: 7

Example 2:

Input: " 3/2 "Output: 1

Example 3:

Input: " 3+5 / 2 "Output: 5

把字符串转为数学公式进行计算。注意排除空格。

首先是获得完整的数字,可以用i.isdigit()或者i in ‘0123456789’来判断i是否是数字。

然后空格跳过。

注意符号对应的时挨着的后面的数字计算方式,所以在最前面添加一个‘+’,使后面每个数字对应正确的符号。

最后再随意添加一个符号,否则不会计算到原字符串中的最后一个符号。

除法需要特别注意,这里python3可运行,python会报错,因为除法取整的方式在python2.X和python3中是不同的。

class Solution:    def calculate(self, s: str) -> int:        stack=[]        num=0        s+='+'        pre='+'        for i in s:            if i in '0123456789':                num=num*10+int(i)            elif i==' ':                continue            else:                if pre=='+':                    stack.append(num)                elif pre=='-':                    stack.append(-num)                elif pre=='*':                    prenum=stack.pop()                    stack.append(prenum*num)                elif pre=='/':                    prenum=stack.pop()                    stack.append(int(prenum/num))                num=0                pre=i        return sum(stack)

 

转载地址:http://ujrbb.baihongyu.com/

你可能感兴趣的文章
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>
Spring源码剖析6:Spring AOP概述
查看>>
【Linux】进程的理解(二)
查看>>
【Linux】vim的简单配置
查看>>
【C++】构造函数、析构函数抛出异常的问题
查看>>
【C++】关于vector<bool>
查看>>
PB协议的说明与使用
查看>>
什么是TPS,什么是QPS,区别是什么?
查看>>
git pull遇到错误:error: Your local changes to the following files would be overwritten by merge:
查看>>
ThreadLocal 那点事儿(续集)
查看>>
阳台做成榻榻米 阳台做成书房
查看>>
深入分析java线程池的实现原理
查看>>
mybatis中"#"和"$"的区别
查看>>
Hibernate与MyBatis区别
查看>>
如何禁用Eclipse的Validating
查看>>
据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗?
查看>>