Форум сайта python.su
103
py.user.next
Каой же Вы дотошный (в хорошом смысле).
def aon(s): return reduce(lambda x,y: x+x[-1] if y=='#' else x+y, ['#']+[s[i] for i in xrange(len(s)-1) if s[i]==s[i+1] and (s[i]!=s[i-1] or i==0)]).strip('#')
Отредактировано terabayt (Авг. 11, 2014 02:49:50)
Офлайн
857
Тут ещё вариант вспомнил (нашёл в разделе временных сравнений).
Это вариант cutwater'а. (Немного переименовал переменные.)
def dec_aon_num(s): result = '' was_written = False for i in range(len(s) - 1): if s[i] == s[i + 1]: if was_written == False: if s[i] == '#': result += result[-1:] else: result += s[i] was_written = True else: was_written = False return result
Отредактировано py.user.next (Авг. 11, 2014 23:40:14)
Офлайн