Advertisement
Guest User

Untitled

a guest
Jan 16th, 2023
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. def step1(encrypted_list):
  2. # здесь сделаем так, чтобы большая буква всегда была вначале слова
  3. # для этого будем смещать символы каждого слова вправо
  4. # смещение в первом предложении = 3, во втором = 4 и так далее
  5. # признак конца предложения: / (он тоже окажется на своём месте после работы алгоритма - в конце слова)
  6. output_list = []
  7. delta = 3
  8.  
  9. for word in encrypted_list:
  10. corrected_word = ''.join(
  11. [
  12. word[-delta % len(word):], word[:-delta % len(word)]
  13. ]
  14. )
  15. output_list.append(corrected_word)
  16. if '/' in corrected_word:
  17. delta += 1
  18.  
  19. return output_list
  20.  
  21.  
  22. def step2(encrypted_list):
  23. # здесь применим алгоритм Цезаря со смещением -1
  24. abc = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  25. output_list = []
  26.  
  27. for word in encrypted_list:
  28. corrected_word = ''.join(
  29. [abc[abc.index(s) - 1] if s in abc else s for s in word]
  30. )
  31. output_list.append(corrected_word)
  32.  
  33. return output_list
  34.  
  35.  
  36. input_str = 'vujgvmCfb tj ufscfu ouib z/vhm jdjuFyqm jt fscfuu uibo jdju/jnqm fTjnqm tj scfuuf ibou fy/dpnqm ' \
  37. 'yDpnqmf jt cfuufs boui dbufe/dpnqmj uGmb tj fuufsc ouib oftufe/ bstfTq jt uufscf uibo otf/ef ' \
  38. 'uzSfbebcjmj vout/dp djbmTqf dbtft (ubsfo djbmtqf hifopv up csfbl ifu t/svmf ipvhiBmu ' \
  39. 'zqsbdujdbmju fbutc uz/qvsj Fsspst tipvme wfsof qbtt foumz/tjm omfttV mjdjumzfyq odfe/tjmf ' \
  40. 'Jo fui dfgb pg hvjuz-bncj gvtfsf fui ubujpoufnq up ftt/hv Uifsf vmetip fc pof.. ' \
  41. 'boe sbcmzqsfgf zpom pof pvt..pcwj xbz pu pe ju/ Bmuipvhi uibu bzx bzn puo cf wjpvtpc bu jstug ' \
  42. 'ttvomf sfzpv( i/Evud xOp tj scfuuf ibou /ofwfs uipvhiBm fsofw jt fopgu cfuufs boui ' \
  43. 'iu++sjh x/op gJ ifu nfoubujpojnqmf tj eibs pu mbjo-fyq tju( b bec /jefb Jg fui foubujpojnqmfn jt ' \
  44. 'fbtz up bjo-fyqm ju znb cf b hppe jefb/ bnftqbdftO bsf pof ipoljoh sfbuh efbj .. fu(tm pe psfn gp tf"uip'
  45. input_list = input_str.split()
  46.  
  47. print(
  48. ' '.join(
  49. step2(step1(input_list))
  50. ).replace('/', '\n')
  51. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement