Advertisement
smj007

Basic Calculator II

Aug 6th, 2024
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.09 KB | None | 0 0
  1. class Solution:
  2.     def calculate(self, s: str) -> int:
  3.        
  4.         s = s + "+"
  5.         num = 0
  6.         previous_num = 0
  7.         current_num = 0
  8.         prev_operator = "+"
  9.         result = 0
  10.  
  11.         for i in range(len(s)):
  12.             if s[i].isnumeric():
  13.                 current_num = current_num*10 + int(s[i])
  14.             elif s[i] == " ":
  15.                 continue
  16.             # consider cases where "+-*/"
  17.             else:
  18.                 if prev_operator == "+":
  19.                     num = num + current_num
  20.                     prev_num = current_num
  21.                 elif prev_operator == "-":
  22.                     num = num - current_num
  23.                     prev_num = -current_num
  24.                 elif prev_operator == "*":
  25.                     num = num - prev_num + prev_num*current_num
  26.                     prev_num = prev_num*current_num
  27.                 else:
  28.                     num = num - prev_num + int(prev_num/current_num)
  29.                     prev_num = int(prev_num/current_num)
  30.                 current_num = 0
  31.                 prev_operator = s[i]
  32.  
  33.         return num
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement