Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 28, 2016 21:23:16

Artem2204
Зарегистрирован: 2016-12-28
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу по одномерному масиву.

Задание: с массива удалить самую длинную цепочку парных элементов. Пример: с массива A: 4 1 4 2 1 2 4 6 должен получиться массив A: 4 1 4 2 1 (самая длинная цепочка парных чисел содержит элементы с 6 по 8: 2 4 6).

Офлайн

#2 Дек. 29, 2016 08:11:51

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите решить задачу по одномерному масиву.

На чем застряли?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Дек. 30, 2016 18:48:17

Artem2204
Зарегистрирован: 2016-12-28
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачу по одномерному масиву.

Как задать и потом удалить самую длинную цепочку парных чисел?

Офлайн

#4 Дек. 31, 2016 01:39:20

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

Помогите решить задачу по одномерному масиву.

Надо сначала найти её, а для этого надо пройти весь массив до конца, запоминая начало и длину самой длинной цепочки в каждый момент времени (на каждом шаге цикла).



Офлайн

#5 Дек. 31, 2016 17:19:45

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Помогите решить задачу по одномерному масиву.

 >>> 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)

Офлайн

#6 Дек. 31, 2016 22:01:58

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Помогите решить задачу по одномерному масиву.

после проводов старого года пришел алгоритм

 >>>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]
>>> 
новый год прошел …
выделить последовательность 2,2,2… макс.длины и привязать к индексу массива

Отредактировано vic57 (Янв. 1, 2017 22:01:21)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version