Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 27, 2010 03:01:55

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Нужна помощь по задачке - вычислить глубину математического выражения

Ed
Код:

def depth(expr):
return int(isinstance(expr, (list, tuple))) and max()
Небольшой штрих с удалением квадратных скобок:

def depth(expr):
return int(isinstance(expr, tuple)) and max(depth(x) for x in expr)+1
И вариант без рекурсии, который также будет работать, если выражение задано в виде строки:

def depth(expr):
s = ''.join( i for i in str(expr) if i in '()' )
while ')(' in s:
s = s.replace(')(','')
return len(s)//2



Отредактировано (Сен. 27, 2010 08:40:18)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version