Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Calculator-I by gleb10101010101
from string import digits
def calculator(log: str) -> str:
display, op, mode, num, last_num = '0', None, 'usual', 0, 0
for i in log:
if i in digits:
if mode == 'clear': display, num, mode = '0', 0, 'usual'
num = int(display + i)
display = str(num)
elif i in '+-*/':
if op == None: op, mode, last_num, num = i, 'clear', num, 0
else:
mode = 'clear'
if op == None: continue
num = eval(str(last_num) + op + str(num))
display = str(num)
op = i
last_num = num
else:
mode = 'clear'
if op == None: continue
num = eval(str(last_num) + op + str(num))
display = str(num)
op = None
return display
print("Example:")
print(calculator("1+2"))
# These "asserts" are used for self-checking
assert calculator("000000") == "0"
assert calculator("0000123") == "123"
assert calculator("12") == "12"
assert calculator("+12") == "12"
assert calculator("") == "0"
assert calculator("1+2") == "2"
assert calculator("2+") == "2"
assert calculator("1+2=") == "3"
assert calculator("1+2-") == "3"
assert calculator("1+2=2") == "2"
assert calculator("=5=10=15") == "15"
print("The mission is done! Click 'Check Solution' to earn rewards!")
Nov. 16, 2023
Comments: