Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Exploring the Caesar cipher
- Предлагаю решить задачу вместе: без спешки, с объяснением каждой строки.
- Задача
- Реализовать шифр Цезаря: сдвинуть каждую букву строки на фиксированное число позиций в алфавите.
- Решение
- ``python
- def caesar(text: str, shift: int) -> str:
- result = []
- for ch in text:
- if ch.isalpha():
- base = ord('A') if ch.isupper() else ord('a')
- result.append(chr((ord(ch) - base + shift) % 26 + base))
- else:
- result.append(ch)
- return ''.join(result)
- print(caesar("Hello, World!", 3))
- `
- Как это работает
- Буква переводится в номер внутри алфавита, к номеру прибавляется сдвиг, а остаток от деления на 26 обеспечивает «зацикливание» алфавита. Прочие символы не меняются.
- Пример работы
- `text
- Khoor, Zruog!
- ``
- Сложность
- O(n) по времени, O(n) по памяти под результат.
- Это решение удобно как отправная точка для экспериментов: попробуйте изменить входные данные и проследить за поведением кода.
- View Full Gallery → https://go.cbrop.com/prse
- Related:
- https://ikovacs47.wixsite.com/my-site-1/post/%D8%B3%D9%83%D8%B3-%D9%85%D8%AF%D8%A7%D8%B9%D8%A8%D8%A7%D8%AA---%D9%81%D9%8A%D8%AF%D9%8A%D9%88%D9%87%D8%A7%D8%AA-%D9%86%D9%8A%D8%A7%D9%83%D8%A9-%D9%88%D9%85%D8%A8%D8%A7%D8%B4%D8%B1%D8%A9-%D9%85%D8%B9-%D9%85%D9%85%D8%AB%D9%84%D8%A7%D8%AA-%D8%AC%D9%85%D9%8A%D9%84%D8%A7%D8%AA
- https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/11/tv-man-r34-ecfc05.pdf
- https://pastebin.com/JHWDDZf8
- https://articlescad.com/mistressrola-428986.html
- https://www.sendspace.com/file/yzb2jr1t
Add Comment
Please, Sign In to add comment