def solve_postfix(postfix_exp):
stack = []
# Function to perform arithmetic operations
def perform_operation(op, num1, num2):
if op == '+':
return num1 + num2
elif op == '-':
return num1 - num2
elif op == '*':
return num1 * num2
elif op == '/':
return num1 / num2
for char in postfix_exp:
if char.isdigit():
stack.append(int(char))
elif char in "+-*/":
# Pop the top two numbers from the stack
num2 = stack.pop()
num1 = stack.pop()
# Perform the operation and push the result back onto the stack
result = perform_operation(char, num1, num2)
stack.append(result)
# The final result should be on the top of the stack
return stack.pop()
# Example usage:
postfix_exp = "481*+3-"
result = solve_postfix(postfix_exp)
print(result) # Output should be 15
ZGVmIHNvbHZlX3Bvc3RmaXgocG9zdGZpeF9leHApOgogICAgc3RhY2sgPSBbXQogICAgCiAgICAjIEZ1bmN0aW9uIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zCiAgICBkZWYgcGVyZm9ybV9vcGVyYXRpb24ob3AsIG51bTEsIG51bTIpOgogICAgICAgIGlmIG9wID09ICcrJzoKICAgICAgICAgICAgcmV0dXJuIG51bTEgKyBudW0yCiAgICAgICAgZWxpZiBvcCA9PSAnLSc6CiAgICAgICAgICAgIHJldHVybiBudW0xIC0gbnVtMgogICAgICAgIGVsaWYgb3AgPT0gJyonOgogICAgICAgICAgICByZXR1cm4gbnVtMSAqIG51bTIKICAgICAgICBlbGlmIG9wID09ICcvJzoKICAgICAgICAgICAgcmV0dXJuIG51bTEgLyBudW0yCiAgICAKICAgIGZvciBjaGFyIGluIHBvc3RmaXhfZXhwOgogICAgICAgIGlmIGNoYXIuaXNkaWdpdCgpOgogICAgICAgICAgICBzdGFjay5hcHBlbmQoaW50KGNoYXIpKQogICAgICAgIGVsaWYgY2hhciBpbiAiKy0qLyI6CiAgICAgICAgICAgICMgUG9wIHRoZSB0b3AgdHdvIG51bWJlcnMgZnJvbSB0aGUgc3RhY2sKICAgICAgICAgICAgbnVtMiA9IHN0YWNrLnBvcCgpCiAgICAgICAgICAgIG51bTEgPSBzdGFjay5wb3AoKQogICAgICAgICAgICAjIFBlcmZvcm0gdGhlIG9wZXJhdGlvbiBhbmQgcHVzaCB0aGUgcmVzdWx0IGJhY2sgb250byB0aGUgc3RhY2sKICAgICAgICAgICAgcmVzdWx0ID0gcGVyZm9ybV9vcGVyYXRpb24oY2hhciwgbnVtMSwgbnVtMikKICAgICAgICAgICAgc3RhY2suYXBwZW5kKHJlc3VsdCkKICAgIAogICAgIyBUaGUgZmluYWwgcmVzdWx0IHNob3VsZCBiZSBvbiB0aGUgdG9wIG9mIHRoZSBzdGFjawogICAgcmV0dXJuIHN0YWNrLnBvcCgpCgojIEV4YW1wbGUgdXNhZ2U6CnBvc3RmaXhfZXhwID0gIjQ4MSorMy0iCnJlc3VsdCA9IHNvbHZlX3Bvc3RmaXgocG9zdGZpeF9leHApCnByaW50KHJlc3VsdCkgICMgT3V0cHV0IHNob3VsZCBiZSAxNQ==