# Two approaches to the Caesar cipher (part e0ed)

Покажу решение и коротко сравню его с альтернативным подходом.

## Задача

Реализовать шифр Цезаря: сдвинуть каждую букву строки на фиксированное число позиций в алфавите.

## Решение

```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) по памяти под результат.


## Альтернативный подход

Ту же задачу часто решают иначе: например, через рекурсию вместо цикла или через стандартную библиотеку вместо ручной реализации. Альтернатива обычно короче, но первое «ручное» решение лучше показывает механику работы алгоритма. Полезно написать оба и сравнить на одинаковых тестах.

Выбор между решениями — это баланс читаемости и скорости: для учебной задачи важнее первый.

**Читайте также:**

[фиксированное](https://jaflysilve.freeflarum.com/d/1831-1831-sophie-rain-porn-pics-hot-onlyfans-nude-photos-leaks) · [результат](https://wuchu-pub.com/uploads/20261017/6b5dc8120c227599e8f47c77abc5c759.pdf) · [читаемости](https://leahleroy990.overblog.fr/2026/10/bonnie-blue-porn-sexy-british-model-videos-and-galleries.html) · [строки](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/k-yl-t-rbanl-twitter-ca6112.pdf) · [показывает](https://articlescad.com/2024-381289.html) · [букву](https://montage38683.mataroa.blog/blog/dabi-phone-wallpaper-hd-4k-my-hero-academia-anime-backgrounds/) · [позиций](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [Покажу](https://articlescad.com/alizade-porno-videolar-foto-raflar-ve-m-stehcen-klipleri-381146.html) · [Цезаря](https://drop.xtrafrancyz.net/selif/uswykxrtot.pdf) · [работает](https://kappa.lol/gU00UN) · [return](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [важнее](https://privatebin.devol.it/?4cf19dea91d24232#8gerdsLXexSE4PRtXUZcLiyjGZeLP14MGwhW2HkhrsSU) · [деления](https://juliamichel991.overblog.fr/2026/10/zoro-x-sanji-hentai.html) · [python](https://raindrop.io/undefined/collection-75602836) · [Прочие](https://archive45748.mataroa.blog/blog/136-f8-d2c/) · [учебной](https://atcyasenevo.ru/erotik+flim+izle?f=linkcentre) · [короче](https://statics.pancake.vn/web-media-264/63/c7/d3/f8/b20f558d913f883587c6ad0e15fc81ebf69de061f497a1a974887363.pdf) · [обычно](https://jaflysilve.freeflarum.com/d/1807-1807-bokep-indo-ewe-istri-saat-cuci-piring-1) · [зацикливание](https://paper.wf/lauraweber84log/fitness-nala-threesome) · [подходом](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [World](https://sway.cloud.microsoft/LfWyqDo5F0mQ2Kmk) · [библиотеку](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/piper-rockelle-leaked-f3b96a.pdf) · [join(result](https://yakihonne.com/article/naddr1qvzqqqr4gupzpt454me2dq7ya34qhajmesjjwda3z4mgsckamxx8lqkvqakvzfa4qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkzve5xcurycfn956nswpe956rxvrr943xxvfc943x2wtxv5mkvdmrxfsn2t6lfd2)

