leetcode 基本計算器II

2021-09-25 09:19:06 字數 2141 閱讀 8589

按照兩個棧的思路去匯入數字和數學操作,然後根據先乘除後加減的法則,找到第乙個運算元和第二運算元即可。

具體**如下:

class

solution

:def

calculate

(self, s:

str)

->

int:

string =

''for char in s:

if char !=

' ':

string += char

nums =

operations =

ops =

['+'

,'-'

,'*'

,'/'

] tmp =

0for char in string:

if char not

in ops:

tmp = tmp *10+

int(char)

else

: tmp =

0 first = nums[0]

second =

'#' flag =

'#'for i in

range(1

,len

(nums)):

if second ==

'#'and operations[i -1]

=='*'

: first = first * nums[i]

if second ==

'#'and operations[i -1]

=='/'

: first = first // nums[i]

if second !=

'#'and operations[i -1]

=='*'

: second = second * nums[i]

if second !=

'#'and operations[i -1]

=='/'

: second = second // nums[i]

if second !=

'#'and operations[i -1]

=='+'

:if flag ==

'+':

first += second

second =

'#' flag =

'+'if flag ==

'-':

first -= second

second =

'#' flag =

'+'if second !=

'#'and operations[i -1]

=='-'

:if flag ==

'+':

first += second

second =

'#' flag =

'-'elif flag ==

'-':

first -= second

second =

'#' flag =

'-'if second ==

'#'and operations[i -1]

=='+'

: second = nums[i]

flag =

'+'if second ==

'#'and operations[i -1]

=='-'

: second = nums[i]

flag =

'-'if second ==

'#':

return first

else

:if flag ==

'+':

return first + second

else

:return first - second

LeetCode 基本計算器II

實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式僅包含非負整數,四種運算子和空格 整數除法僅保留整數部分。示例 1 輸入 3 2 2 輸出 7 示例 2 輸入 3 2 輸出 1 示例 3 輸入 3 5 2 輸出 5 說明 你可以假設所給定的表示式都是有效的。請不要使用內建的庫函式 ev...

基本計算器 II

給你乙個字串表示式 s 請你實現乙個基本計算器來計算並返回它的值。整數除法僅保留整數部分。示例 1 輸入 s 3 2 2 輸出 7 示例 2 輸入 s 3 2 輸出 1 示例 3 輸入 s 3 5 2 輸出 5 1 s.length 3 105 s 由整數和算符 組成,中間由一些空格隔開 s 表示乙...

leetcode 227 基本計算器II

實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式僅包含非負整數,四種運算子和空格 整數除法僅保留整數部分。示例 1 輸入 3 2 2 輸出 7示例 2 輸入 3 2 輸出 1示例 3 輸入 3 5 2 輸出 5說明 1 你可以假設所給定的表示式都是有效的。2 請不要使用內建的庫函式 e...