Поиск по этому блогу

среда, 12 февраля 2020 г.

С27 задача 17 на Питоне

На вход программе подается текст заклинания, состоящего не более, чем из 200 символов, заканчивающийся точкой (другие точки во входных данных отсутствуют). Гарри Поттеру нужно зашифровать его следующим образом. Сначала Гарри определяет количество букв в самом коротком слове, обозначив полученное число через K (словом называется непрерывная последовательность английских букв, слова друга от друга отделяются любыми другими символами, длина слова не превышает 20 символов). Затем он заменяет каждую английскую букву в заклинании на букву, стоящую в английском алфавите на K букв ранее (алфавит считается циклическим, то есть, перед буквой A стоит буква Z), оставив другие символы неизменными. Строчные буквы при этом остаются строчными, а прописные – прописными.

Требуется написать программу для Гарри Поттера, которая будет выводить на экран текст зашифрованного заклинания. Например, если исходный текст был таким:

Zb Ra Ca Dab Ra.

то результат шифровки должен быть следующий:

Xz Py Ay Byz Py.
Решение
c=input()
n=''
m=len(c)
k=0
#slovo
for i in range(len(c)):
   p=ord(c[i])
   if (p>64 and p<91) or (p>96 and p<123):
      k+=1
   else:
      if k<m:
         m=k
      k=0
for i in range(len(c)):
   p=ord(c[i])
   if (p>64 and p<91):
      k=p-m
      if k<65:
         k=90-(64-k)
   elif (p>96 and p<123):
      k=p-m
      if k<97:
         k=122-(96-k)
   else:
      k=p
   n+=chr(k)
print(n)

Комментариев нет:

Отправить комментарий