Программа получает с потока стандартного ввода текст. Нужно переставить местами чётные и нечётные символы. Некорректные байты (ascii: ≥ 128, utf-8: каждый байт незавершённой последовательности) во входных данных пропускаются. Пустой ввод допускается, в этом случае ожидается пустой вывод. Если в тексте нечётное количество символов, последний символ остаётся на месте.
Примеры:
ABCD -> BADC
ABC -> BAC
A -> A
Программа проходит три теста: byte, codepoint и grapheme:
Тест byte проверяет работоспособность программы на тексте ASCII («1 символ = 1 байт»). Проверить себя в python3 — посмотреть длину строки в нужных терминах — можно так: `len("my-test-string".encode('utf-8'))`. Тестер:
```
python3 .github/test-byte.py
```
Тест codepoint проверяет работоспособность программы на тексте в кодировке UTF-8 без модификаторов, например, на кириллице («1 символ = 1 кодирующая последовательность от 1 до 4 байт»). Проверить себя в python3 можно стандартной функцией длины: `len("моя тестовая строка")`. Тестер:
```
python3 .github/test-codepoint.py
```
Тест grapheme проверяет работоспособность программы на тексте в кодировке UTF-8 с модификаторами («1 символ = 1 grapheme cluster в терминах стандарта Unicode, спецификация: https://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table), например, 🇷🇺 — 1 grapheme cluster. Проверить себя в python3 можно с помощью пакета `grapheme`: https://grapheme.readthedocs.io/en/latest/grapheme.html
```
# один раз: установить пакет (мы не изучаем Python, поэтому установка упрощённая)
pip3 install --user grapheme
python3
# ">>>" вводить не нужно, это для демонстрации того, что команда вводится в python3
>>> import grapheme
>>> grapheme.length("🇷🇺")
1
```
Тестер (для него тоже нужна библиотека grapheme):
python3 .github/test-grapheme.py
Т.к. в стандартном вводе могут быть некорректные Unicode-последовательности, тестер выводит входные данные в формате Python. Чтобы проверить работу программы на таких входных данных, нужно предварительно пропустить их через скрипт demo-input.sh, вставив входные данные в качестве первого аргумента в кавычках:
```
./github/demo-input.sh "b'\xd1\x8b'" | ./main
```
| Гарантия на работу | 1 год |
| Средний балл | 4.53 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |