Удаление элементов с определенными подстрокамиPython

Программы на Python
Ответить
Anonymous
 Удаление элементов с определенными подстроками

Сообщение Anonymous »

Я пытаюсь создать набор всех битовых строк длины n, которые не содержат последовательных нулей. Хотя я мог сделать это рекурсивно, мне хотелось создать и нерекурсивный метод.
Хотя существует несколько способов сделать это, я решил создать список всех строк и затем удалите те, у которых два последовательных нуля. Я попробовал просто проверить, содержится ли «00» в каждой битовой строке. Если бы было, то я бы удалил. Однако он пропустил множество случаев двойных нулей.
Ниже я попробовал еще один метод, который исключил больше из них, но некоторые все же пропустил. Я также попробовал проверить каждую строку, чтобы увидеть, есть ли num[k]==0 и num[k+1] == 0, и, если да, удалить ее... но это не сработало.
Будем признательны за любые предложения.
def bit_string(n):
list = []
if n == 0:
return list
else:
list.append(0)
list.append(1)
i = 1
while i < n:
temp_list = []
for num in list:
num = str(num)
temp_list.append(num+'1')
temp_list.append(num+'0')
list = temp_list
i = i + 1
for k in range(2,n+1):
for num in list:
if '0'*k in num:
list.remove(num)
list = set(list)
return list

print(bit_string(4))


Подробнее здесь: https://stackoverflow.com/questions/792 ... substrings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»