7-Segment-Ziffern können in ASCII mit _|
Zeichen dargestellt werden. Hier sind die Größenangaben 1
:
_ _ _ _ _ _ _ _
| _| _| |_| |_ |_ | |_| |_| | |
| |_ _| | _| |_| | |_| _| |_|
Größere Größen werden gebildet, indem jedes Segment proportional länger gemacht wird. Hier sind ein paar 3-stellige Zahlen.
___ ___ ___ ___ ___ ___ ___
| | | | | | | | | |
| | | | | | | | | |
|___| |___ | |___ ___| | | |___|
| | | | | | | | | |
| | | | | | | | | |
|___| |___| | ___| ___| |___| ___|
Tor
In dieser Herausforderung müssen Sie ein Programm / eine Funktion schreiben, die eine einzelne Ziffer als Eingabe verwenden und deren Größe identifizieren kann. Der Haken: Wenn die Eingabe keine gültige Ziffer ist, sollte Ihr Programm ausgeben 0
.
Das ist Code-Golf , die wenigsten Bytes gewinnen.
Sie können entweder ein Programm oder eine Funktion schreiben, die die Ziffer entweder als STDIN oder als Argument empfängt, und den Wert drucken / zurückgeben.
Die Ziffern werden als mehrzeilige Zeichenfolge bereitgestellt, die mit dem Mindestmaß an abschließendem Leerzeichen aufgefüllt ist, das erforderlich ist, um ein perfektes Rechteck zu erstellen. Die nachfolgende Newline ist ein optionaler Teil der Eingabe. Es wird keine unnötigen führenden Leerzeichen geben.
Wenn eine Nicht-Ziffer übergeben wird, besteht sie weiterhin aus _|
Zeichen, die zu einem Rechteck aufgefüllt sind und keine nicht benötigten führenden Leerzeichen enthalten. Es werden keine Leerzeilen angezeigt. Sie müssen sich nicht mit Leereingaben befassen.
Die Ausgabe sollte eine einzelne nicht negative Ganzzahl mit optionalem Zeilenumbruch sein. Wenn die Eingabe keine richtige Ziffer von beliebiger Größe ist, geben Sie sie aus 0
. Anderenfalls geben Sie die Größe aus.
Hier finden Sie eine praktische Anleitung für die Breiten und Höhen der einzelnen Ziffern für eine bestimmte Größe N
.
Digit Height Width (not counting newlines)
1 2N 1
2 2N+1 N+2
3 2N+1 N+1
4 2N N+2
5 2N+1 N+2
6 2N+1 N+2
7 2N+1 N+1
8 2N+1 N+2
9 2N+1 N+2
0 2N+1 N+2
E / A-Beispiele
Im:
__
|
__|
|
__|
Aus:
2
Im:
|
|
|
Aus:
0 //because it is of an invalid height. Either 1 char too short or tall.
Im:
| |
| |
| |
|____|
|
|
|
|
Aus:
4
Im:
___
|
|___
| |
|___|
Aus:
0 //1 char too wide
Im:
_
|_|
| |
Aus:
0 //it's not a digit
Im:
__
|
|__
|
__|
Aus:
2
Im:
_ _
_| _|
|_ _|
Aus:
0 //both would be valid individually, but input should be a *single* digit
Im:
_
|_|
|_|
Aus:
1
Im:
|
|
Aus:
1
Im:
__|_
|
_ |
_
|__
Aus:
0
Dies ist ungefähr die Umkehrung der Transformationszahl in ein 7-Segment-Anzeigemuster seit 3 Jahren.
0
, oder? Es sei denn, Sie haben sich eine Möglichkeit ausgedacht, sie zu zeichnen.