Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def step1(encrypted_list):
- # здесь сделаем так, чтобы большая буква всегда была вначале слова
- # для этого будем смещать символы каждого слова вправо
- # смещение в первом предложении = 3, во втором = 4 и так далее
- # признак конца предложения: / (он тоже окажется на своём месте после работы алгоритма - в конце слова)
- output_list = []
- delta = 3
- for word in encrypted_list:
- corrected_word = ''.join(
- [
- word[-delta % len(word):], word[:-delta % len(word)]
- ]
- )
- output_list.append(corrected_word)
- if '/' in corrected_word:
- delta += 1
- return output_list
- def step2(encrypted_list):
- # здесь применим алгоритм Цезаря со смещением -1
- abc = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
- output_list = []
- for word in encrypted_list:
- corrected_word = ''.join(
- [abc[abc.index(s) - 1] if s in abc else s for s in word]
- )
- output_list.append(corrected_word)
- return output_list
- input_str = 'vujgvmCfb tj ufscfu ouib z/vhm jdjuFyqm jt fscfuu uibo jdju/jnqm fTjnqm tj scfuuf ibou fy/dpnqm ' \
- 'yDpnqmf jt cfuufs boui dbufe/dpnqmj uGmb tj fuufsc ouib oftufe/ bstfTq jt uufscf uibo otf/ef ' \
- 'uzSfbebcjmj vout/dp djbmTqf dbtft (ubsfo djbmtqf hifopv up csfbl ifu t/svmf ipvhiBmu ' \
- 'zqsbdujdbmju fbutc uz/qvsj Fsspst tipvme wfsof qbtt foumz/tjm omfttV mjdjumzfyq odfe/tjmf ' \
- 'Jo fui dfgb pg hvjuz-bncj gvtfsf fui ubujpoufnq up ftt/hv Uifsf vmetip fc pof.. ' \
- 'boe sbcmzqsfgf zpom pof pvt..pcwj xbz pu pe ju/ Bmuipvhi uibu bzx bzn puo cf wjpvtpc bu jstug ' \
- 'ttvomf sfzpv( i/Evud xOp tj scfuuf ibou /ofwfs uipvhiBm fsofw jt fopgu cfuufs boui ' \
- 'iu++sjh x/op gJ ifu nfoubujpojnqmf tj eibs pu mbjo-fyq tju( b bec /jefb Jg fui foubujpojnqmfn jt ' \
- 'fbtz up bjo-fyqm ju znb cf b hppe jefb/ bnftqbdftO bsf pof ipoljoh sfbuh efbj .. fu(tm pe psfn gp tf"uip'
- input_list = input_str.split()
- print(
- ' '.join(
- step2(step1(input_list))
- ).replace('/', '\n')
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement