Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Calculator-I by brownie57
from operator import add, sub
def calculator(log: str) -> str:
operators = {"+": add, "-": sub}
calc = add
a, display = 0, 0
i, j, length = 0, 0, len(log)
while i < length:
if log[i].isdigit():
a = display
j = i
while j < length and log[j].isdigit():
j += 1
display = int(log[i:j])
i = j
else:
display = calc(a, display)
if log[i] in "+-":
calc = operators[log[i]]
i += 1
return str(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!")
Sept. 12, 2025
Comments: