4ステートバーコード
多くの郵便サービス(英国郵政、カナダ郵便、米国郵便など)は、4州のバーコードを使用して郵便に関する情報をエンコードします。ASCIIでレンダリングされると、次のようになります。
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
4ステートバーコードはバーの列です。各バーは上向き、下向き、またはその両方に延長でき、4つの可能性があります。これは、各バーが基本的に4桁を表すことを意味します。
| | バー:| | | | | | 数字:0 1 2 3
このシンボルの問題は、各バーコードが有効な異なるバーコードであるということです。向きが間違っていると、意味が大幅に変わります。そのため、通常、開始と停止のシーケンスが実装されるため、スキャナーはどの方向に読み取られるべきかを計算できます。
この課題のために、Australia Postが指定する開始/停止シーケンスを使用します。各バーコードは1 0
シーケンスで始まり、シーケンスで終わります。
チャレンジ
あなたの仕事は、正の整数が与えられたN
場合にASCII 4状態バーコードに変換するプログラムまたは関数を書くことですN
。
例:
整数が与えられた場合19623
、最初にそのbase-4表現に変換し10302213
ます。
次に、各桁を対応するバーにマッピングします。
1 0 3 0 2 2 1 3 | | | | | | | | | | | | | | | |
最後に、開始/停止シーケンスを追加します。
始まりと終わり: 1 0 1 0 | | | | | | | | | | | | | | | | | | | | | |
結果のバーコードがプログラムの出力になります。
ルール:
- 入力は、言語の標準整数サイズの範囲内の正の整数になります。
- 出力:
- 行のリスト、または改行を含む文字列のいずれかです。
- 形状がそのままである限り、先頭または末尾の改行/スペースを含めることができます。
- 上記の形式でバーコードを表示する必要があります-バーを描画するときにパイプ文字(
|
)とスペース文字()を使用する必要があり、各直立バーの間に1つのスペースが必要です。
- これはcode-golfなので、最短のプログラム(バイト単位)が勝ちです!
テストケース
4095:
| | | | | | | | | | | | | | | | | | | | | | | |
4096:
| | | | | | | | | | | | | |
7313145:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |