После некоторого поиска подсказок я обнаружил, что мне пришлось import re
и использовать регулярные выражения. Ответ - «связанный список». http://www.pythonchallenge.com/pc/def/equality.htmlPython Challenge - # 3 * спойлеры *
Но мне любопытно, что я сделал не так, моя предыдущая попытка его решить?
tekstas = "the string that i need to decode"
possible_solution = []
for i in range(0, len(tekstas)):
if ((ord(tekstas[i]) < 123) and (ord(tekstas[i]) > 96)) and ((ord(tekstas[i-1])) > 64) and ((ord(tekstas[i-1])) < 90) \
and ((ord(tekstas[i-2])) > 64) and ((ord(tekstas[i-2])) < 90) and ((ord(tekstas[i-3])) > 64) and ((ord(tekstas[i-3])) \
< 90) and ((ord(tekstas[i+1])) > 64) and ((ord(tekstas[i+1])) < 90) and ((ord(tekstas[i+2])) > 64) and \
((ord(tekstas[i+2])) < 90) and ((ord(tekstas[i+3])) > 64) and ((ord(tekstas[i+3])) < 90):
possible_solution.append(tekstas[i-4]+tekstas[i-3]+tekstas[i-2]+tekstas[i-1]+tekstas[i]+tekstas[i+1]+tekstas[i+2]+\
tekstas[i+3]+tekstas[i+4])
for i in range (0, len(possible_solution)):
candidate = possible_solution[i]
if (ord(candidate[0]) < 123) and (ord(candidate[0]) > 96) and (ord(candidate[8]) < 123) and (ord(candidate[8]) > 96):
print(candidate[1:8])
Ответы, которые я получаю: IQNlQSL OEKiVEY CNDeHSB OIXdKBF CJAsACF KWGtIDC
маленькие буквы, которые я получаю от этого: liedst Почему я пропускаю несколько букв ??
Где вы тестирование для ** точно ** три больших телохранителей? Я думаю, что вы только тестируете * по крайней мере * три. –
первый цикл ищет по крайней мере три. следующий цикл ищет ровно три – pptt
И как ваш ответ включает большие буквы? Ваш ответ должен содержать только небольшие буквы. –