
Arriver Roman
24.06.2016
19:47:36
*тест*
Не не так

Кот
24.06.2016
19:48:59
ну вот помню что было
hh

Google

Кот
24.06.2016
19:49:11
это форматирование кода

ACx0
24.06.2016
19:49:39
Из клиента - никак.

Карамел
24.06.2016
23:26:57
Друзья
Есть идеи как можно реверснуть стек на си рекурсией (двойной)?
Препод дал задачек на подумать, чет весь вечер сижу задумчивый

Aragaer
24.06.2016
23:57:02
сделать односвязный список. На первой рекурсии его заполнить из стека (пулл из стека, сунуть элемент в список, повторить), на второй рекурсии сделать все обратно (пушим в стек верхний элемент списка, повторяем)
http://pastebin.com/BfTWuGvx
хотя.... наверно имелось в виду что-то без внешнего временного хранилища
ща придумаю
http://pastebin.com/3zUvBGA3 это наверно больше похоже на правду
рекурсивно вытаскиваем из стека последний элемент. Затем рекурсивно это повторяем для того, что осталось. Потом засовываем элемент на место

Михаил Ruhigtoter
25.06.2016
08:12:10
Чат, а как в питоне задать функцию, чтобы она просмотрела список и удалила/изменила найденные значения.
Просто не могу ничего придумать кромка цикла, а он по идее должен сбиваться, если будешь удалять что-то из списка, нумерация то меняется

Google

ACx0
25.06.2016
10:06:04
Всё равно получишь OutOfRange.
Тут всё двумя листами решается и уже решено.

Михаил Ruhigtoter
25.06.2016
10:07:35

ACx0
25.06.2016
10:08:06
И как?

Кот
25.06.2016
10:08:58
да счетчик ввести, если надо удалять
в жаве есть итераторы, в питоне не помню

ACx0
25.06.2016
10:09:08
Хотя.. Если удалять по одному..

Михаил Ruhigtoter
25.06.2016
10:09:12
Ну типа. В условии задачи список фиксированный, а не вводимый. Ты его можешь просматривать с конца, тогда номера след просмотренного не будет изменяться, если будешь удалять с конца по одному

ACx0
25.06.2016
10:09:17
То с конца нормально будет.

Кот
25.06.2016
10:09:42
for i in b:
if i == 55:
блабла
ну еще count ввести
count = len(b)

ACx0
25.06.2016
10:10:21

Кот
25.06.2016
10:10:42
i это просто очередное значение из списка, его менять смысла нет
b[count] менять например
щас занят немного, я вроде что-то такое писал когда изучал )

ACx0
25.06.2016
10:11:28
Думаю, можно пустить for до переменной, которая изначально длина листа, а при каждом удалении декременируется.

Кот
25.06.2016
10:11:30
ну каунт итерировать в форе
да-да, от этой мысли отталкиваться

Google

ACx0
25.06.2016
10:13:02
Каждый раз проверять длину в начале тела ?
Многопоточность, неопределённость, не забирайте, пожалуйста, мне не нравятся белые рубашки.

Михаил Ruhigtoter
25.06.2016
10:14:11

ACx0
25.06.2016
10:14:39
В самом цикле инкремент же есть

Михаил Ruhigtoter
25.06.2016
10:14:44

ACx0
25.06.2016
10:15:28

Кот
25.06.2016
10:16:57
там за пределы вылетать будет если удаление будет

ACx0
25.06.2016
10:17:27
Во, значит свой надо делать, как я выше описал.
Но это многопоточность, не слушайте)

Михаил Ruhigtoter
25.06.2016
10:17:44
В этом то и фишка

Кот
25.06.2016
10:18:15
хитрая жопа )

ACx0
25.06.2016
10:18:21

Михаил Ruhigtoter
25.06.2016
10:19:54

Кот
25.06.2016
10:19:59
ну блин, в питоне вроде как есть итераторы, юзай их и все

Михаил Ruhigtoter
25.06.2016
10:20:18
Там не if, а for же
Каждый по разу

ACx0
25.06.2016
10:20:38
Wait, подумаю о сдвигах
Wait, подумаю о сдвигах
Телеграм, не болей

Кот
25.06.2016
10:22:32
a = [1,2,3,4]
x = iter(a)
for i in a:
print(x.__next__())
1
2
3
4

Google

ACx0
25.06.2016
10:22:40
С чего бы
А с того. У тебя последний элемент, перед ним выкидываешь, будешь проходить его на следующей итерации.

Михаил Ruhigtoter
25.06.2016
10:22:53

Кот
25.06.2016
10:23:13
ой там может и не так немного, я примерно набросал ))

Михаил Ruhigtoter
25.06.2016
10:23:29
Оно не так. Мы пробегаем весь, но один раз, но нам и так и так нужно каждый элемент проверить

Кот
25.06.2016
10:23:42
но при удалении итератор будет сдвигать, по идее
тогда два списка делай, по одному пробегай а во второй вставляй значения

Admin
ERROR: S client not available

Кот
25.06.2016
10:24:32
через append

ACx0
25.06.2016
10:24:42
Хотя.. декремент же будет.

Михаил Ruhigtoter
25.06.2016
10:24:42
Ну там типо для i от n(конеы списка) до 1
Если значение 0, то
Если значение >0, то
Удаляем, оно просто к след идет
Не удаляем, тоже

ACx0
25.06.2016
10:24:54
Так что может с конца и по разу будет.

Михаил Ruhigtoter
25.06.2016
10:25:43
И так и так
Не связанный. В смысле. Список это не связанный, есть связанные, но то вроде кортежами называется

ACx0
25.06.2016
10:27:14
Массив, связные вроде тоже есть, но тут речь про list.

Кот
25.06.2016
10:28:07
щас попробовал
for i in a:
if i == 2:
a.remove(i)
норм отрабатывает
список [1,2,3,4] остается [1,3,4]

Google

Кот
25.06.2016
10:28:55
удаление элемента по значению

ACx0
25.06.2016
10:29:28
Если прибегать вперёд, будет потеря элемента и oor

Кот
25.06.2016
10:29:53
типа того
перебор элементов списка, да

Михаил Ruhigtoter
25.06.2016
10:30:48
Вот, да

ACx0
25.06.2016
10:31:37
Так разобрались же уже, если удалять по одному и нет внешнего воздействия, то просто for с конца

Михаил Ruhigtoter
25.06.2016
10:32:20
На да

Кот
25.06.2016
10:33:07
а чо for in не подходит?

ACx0
25.06.2016
10:33:49
Подходит
Но вручную потенциально оптимальнее

Кот
25.06.2016
10:35:46
хз, подозреваю там не нужно оптималнее )

ACx0
25.06.2016
10:36:57
Таки к хорошему надо приучаться.

Михаил Ruhigtoter
25.06.2016
10:39:14
Ну так то там есть операция, которая удаляет первое значение с начала списка, которое совпадает с заданным
Так что можно удалять поставив эту операцию на повтор столько раз, сколько значений в списке, и так для каждого условия

ACx0
25.06.2016
10:40:07
Тебе же по условию надо

Михаил Ruhigtoter
25.06.2016
10:40:18
Ну там условие тоже можно
Суть в том, что он за один заход удаляет 1 раз