Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 11, 2014 02:49:42

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Задачка о АОН

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('#')
мне так нравилось писать однострочные скрипты, а Вы…



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Авг. 11, 2014 02:49:50)

Офлайн

#2 Авг. 11, 2014 23:39:48

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Задачка о АОН

Тут ещё вариант вспомнил (нашёл в разделе временных сравнений).
Это вариант 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)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version