Форум сайта python.su
Задание: с массива удалить самую длинную цепочку парных элементов. Пример: с массива A: 4 1 4 2 1 2 4 6 должен получиться массив A: 4 1 4 2 1 (самая длинная цепочка парных чисел содержит элементы с 6 по 8: 2 4 6).
Офлайн
На чем застряли?
Офлайн
Как задать и потом удалить самую длинную цепочку парных чисел?
Офлайн
Надо сначала найти её, а для этого надо пройти весь массив до конца, запоминая начало и длину самой длинной цепочки в каждый момент времени (на каждом шаге цикла).
Офлайн
>>> lst = [1, 3, 4, 2, 4, 6] >>> s = [str(i) for i in lst] >>> s ['1', '3', '4', '2', '4', '6'] >>> s = ' '.join(s) >>> s '1 3 4 2 4 6' >>> tmp = '2 4 6' #template >>> if tmp in s: s = s.replace(tmp,'') >>> s '1 3 4 ' >>> l = s.split(' ') >>> out = [] >>> for i in l: try: out.append(int(i)) except: pass >>> out [1, 3, 4] >>>
Отредактировано vic57 (Дек. 31, 2016 19:56:13)
Офлайн
после проводов старого года пришел алгоритм
>>>l = [1, 3, 4, 7, 2, 4, 6, 9] >>> delta = [] >>> for i in xrange(1,len(l)): delta.append(l[i] -l[i-1]) >>> delta [2, 1, 3, -5, 2, 2, 3] >>>
Отредактировано vic57 (Янв. 1, 2017 22:01:21)
Офлайн