按照兩個棧的思路去匯入數字和數學操作,然後根據先乘除後加減的法則,找到第乙個運算元和第二運算元即可。
具體**如下:
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...