Ahoj, mám problém s prefixu do infixu kodem
Poteřbuji změnit kod tak, aby bral inputy v tomto stylu: +-4 2 3 nebo *4-2 3
s tím, že output musí být bez zbytečných závorek ............ 4-2+3 nebo 4*(2-3)
Protože kod funguje,ale vkládá závorky mezi všechny operátory (např (7+7)+7)+7)
Dokážete mi pomoci? Díky
class Calculator:
def __init__ (self):
self.stack = []
def push (self, p):
if p in ['+', '-', '*', '/']:
op1 = self.stack.pop ()
op2 = self.stack.pop ()
self.stack.append ('(%s %s %s)' % (op1, p, op2) )
elif p == '!':
op = self.stack.pop ()
self.stack.append ('%s!' % (op) )
elif p in ['sin', 'cos', 'tan']:
op = self.stack.pop ()
self.stack.append ('%s(%s)' % (p, op) )
else:
self.stack.append (p)
def convert (self, l):
l.reverse ()
for e in l:
self.push (e)
return self.stack.pop ()
c = Calculator ()