4-Zustands-Barcodes
Viele Postdienste (Royal Mail UK, Canada Post, US Mail usw.) verwenden einen 4-Staaten-Barcode, um Informationen über ihre Post zu verschlüsseln. In ASCII gerendert könnte es ungefähr so aussehen:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Ein 4-Staaten-Barcode ist eine Reihe von Balken. Jeder Balken kann nach oben, unten oder in beide Richtungen verlängert werden und bietet 4 Möglichkeiten. Dies bedeutet, dass jeder Balken im Wesentlichen eine vierstellige Basis darstellt:
| | Bar: | | | | | | Ziffer: 0 1 2 3
Das Problem bei dieser Symbologie ist, dass es sich bei jedem Barcode um einen gültigen, anderen Barcode handelt: Die Bedeutung wird drastisch geändert, wenn die Ausrichtung falsch ist. Daher ist ein Start und Stopp werden Sequenz normalerweise implementiert , um die Scanner berechnen kann , welche Art und Weise es soll gelesen werden.
Für diese Herausforderung verwenden wir die von Australia Post festgelegte Start- / Stopp-Sequenz: Jeder Barcode beginnt und endet mit einer 1 0
Sequenz.
Die Herausforderung
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu schreiben N
, die es bei einer positiven Ganzzahl in einen ASCII-4-Status-Barcode umwandelt, wobei jeder Balken (mit Ausnahme der Start- / Stopp-Sequenzen) eine Ziffer in der Base-4-Darstellung von darstellt N
.
Beispiel:
Wenn die ganze Zahl gegeben ist 19623
, konvertieren wir sie zuerst in ihre Basis-4-Darstellung 10302213
.
Wir würden dann jede Ziffer dem entsprechenden Balken zuordnen:
1 0 3 0 2 2 1 3 | | | | | | | | | | | | | | | |
Schließlich würden wir die Start / Stopp-Sequenzen hinzufügen:
Start Ende: 1 0 1 0 | | | | | | | | | | | | | | | | | | | | | |
Der resultierende Barcode sollte die Ausgabe des Programms sein.
Regeln:
- Die Eingabe ist eine positive Ganzzahl im Bereich der Standard-Ganzzahlgröße Ihrer Sprache.
- Die Ausgabe:
- Dies kann entweder eine Liste von Zeilen oder eine Zeichenfolge sein, die neue Zeilen enthält.
- Kann führende oder nachfolgende Zeilen / Leerzeichen enthalten, solange die Form intakt bleibt.
- Sollte den Barcode mit dem obigen Format anzeigen - es muss das Pipe-Zeichen (
|
) und das Leerzeichen () beim Zeichnen von Balken verwendet werden, und es sollte 1 Leerzeichen zwischen jedem senkrechten Balken sein.
- Das ist Code-Golf , also gewinnt das kürzeste Programm (in Bytes)!
Testfälle
4095:
| | | | | | | | | | | | | | | | | | | | | | | |
4096:
| | | | | | | | | | | | | |
7313145:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |