Задание
Шифр Цезаря один из наиболее древнейших известных шифров. Схема шифрования очень проста - используется сдвиг буквы алфавита на фиксированное число позиций влево. Например, если сдвиг равен трем, то буква A заменяется на D, а буква z - на c. Вам дана зашифрованная строка s, состоящая только из латинских букв и пробелов и число K, на которое были сдвинуты буквы алфавита при шифровании.
Ограничения на ввод
В первой строке записано одно целое число K (|K| ⩽ 105). Во второй строке записана одна строка s, состоящая только из больших и маленьких латинских букв и пробелов.
Длина строки не превосходит 106.
Фрагмент программного кода
for (int i = 0; i < s.Length; i++) // Сравниваем каждый символ строки { if (simb.Contains(s[i])) // Если символ из строки есть в списке, то просто добавляем его rez += s[i]; else { if (s[i] >= min_A && s[i] <= max_Z) // Если буква заглваная { if ((int)(s[i] - k) < min_A) // Если смещение выходит за границы A..Z { rez += (char)(max_Z - (k - ((int)s[i] - min_A + 1))); } else rez += (char)(int)((s[i]) - k); // Если нет, то добавляем заглавную букву } if (s[i] >= min_a && s[i] <= max_z) // Если буква строчная { if ((int)(s[i] - k) < min_a) // Если смещение выходит за границы a..z { rez += (char)(max_z - (k - ((int)s[i] - min_a + 1))); } else rez += (char)(int)((s[i]) - k); // Если нет, то добавляем строчную букву } } }
Скриншот архива с проектом
Стандартный ввод:
- 15
Xi xh ktgn wpgs egdqatb
- 12
Eaxhq Uf Iuft Rudq
- 3
Yhql ylgl ylfl Veni vidi vici
Стандартный вывод:
- It is very hard problem
- Solve It With Fire
- Veni vidi vici
kostyaLem