- 22, Oct 2024
- #1
4-позиционные штрих-коды
Многие почтовые службы (Royal Mail UK, Canada Post, US Mail и т. д.) используют штрих-код с четырьмя состояниями для кодирования информации о своей почте. В формате ASCII это может выглядеть примерно так:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Штрих-код с 4 состояниями представляет собой ряд полос. Каждую полосу можно продлить вверх, вниз или и то, и другое, что дает 4 возможности. Это означает, что каждая полоса по существу представляет собой цифру по основанию 4:
| | | | | | | | | | | | | |
Проблема с этой символикой заключается в том, что каждый штрих-код является действительным, перевернутым другим штрих-кодом: значение радикально меняется, если ориентация неправильная. Таким образом, начинать и останавливаться последовательность обычно реализуется, поэтому сканер может рассчитать, каким образом ее следует читать.
Для этой задачи мы будем использовать последовательность запуска/остановки, указанную Почтой Австралии: каждый штрих-код начинается и заканчивается
| | | | | | | |
| | | | | | | | | |
| | | | | |
sequence.
Вызов
Ваша задача — написать программу или функцию, которая по положительному целому числу
Start: End: 1 0 1 0 | | | | | | | | | | | | | | | | | | | | | |, converts it to an ASCII 4-state barcode, where each bar (except for the start/stop sequences) represents a digit in the base-4 representation of
1 0 3 0 2 2 1 3 | | | | | | | | | | | | | | | |.
Пример:
Учитывая целое число
| | Bar: | | | | | | Digit: 0 1 2 3, we would first convert it to its base-4 representation,
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |.
Затем мы сопоставим каждую цифру с соответствующей полосой:
|
Наконец, мы добавим последовательности запуска/остановки:
10302213
Полученный штрих-код должен быть результатом работы программы.
Правила:
- Ввод будет положительным целым числом в пределах стандартного целочисленного размера вашего языка.
- Вывод:
- Может быть либо списком строк, либо строкой, содержащей символы новой строки.
- Может содержать начальные или конечные символы новой строки/пробелы, если форма остается неизменной.
- Должен отображаться штрих-код в указанном выше формате — он должен использовать символ вертикальной черты (
19623
) and space character () when drawing bars, and there should be 1 space in between each upright bar.
- Это , поэтому побеждает самая короткая программа (в байтах)!
Тестовые случаи
4095:
N
4096:
N
7313145:
1 0
#code-golf #code-golf #string #ascii-art #base-conversion