figlet
ist ein Dienstprogramm, das Klartext in eine ASCII-Darstellung zur Verwendung in Bannern und dergleichen umwandelt. Beispielsweise:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
Schreiben Sie ein Programm oder eine Funktion, die die ASCII-Ausgabe von übernimmt figlet
und auf den ursprünglichen Klartext zurücksetzt.
Es kann hilfreich für Sie sein, zu installieren figlet
. Ich habe Version 2.2.5, die Sie erhalten, wenn Sie sudo apt-get install figlet
auf Ubuntu 14.04. Diese Figur hat tatsächlich mehrere "Schriften". In diesem Zusammenhang wird nur die Standardschriftart behandelt standard
.
Eingabetext ist nicht breiter als 80 Zeichen und wurde aus Klartext generiert, der nur Großbuchstaben und Leerzeichen enthält.
Ihr Programm darf figlet
in keiner Weise den Quellcode aufrufen .
Beispiel
Eingang:
_ ____ ____ ____ _____ _____ ____ _ _ ___
/ \ | __ ) / ___| _ \| ____| ___/ ___| | | |_ _|
/ _ \ | _ \| | | | | | _| | |_ | | _| |_| || |
/ ___ \| |_) | |___| |_| | |___| _|| |_| | _ || |
/_/ \_\____/ \____|____/|_____|_| \____|_| |_|___|
_ _ ___ __ __ _ _ ___ ____ ___ ____
| | |/ / | | \/ | \ | |/ _ \| _ \ / _ \| _ \
_ | | ' /| | | |\/| | \| | | | | |_) | | | | |_) |
| |_| | . \| |___| | | | |\ | |_| | __/| |_| | _ <
\___/|_|\_\_____|_| |_|_| \_|\___/|_| \__\_\_| \_\
____ _____ _ ___ ____ ____ ____ _______
/ ___|_ _| | | \ \ / /\ \ / /\ \/ /\ \ / /__ /
\___ \ | | | | | |\ \ / / \ \ /\ / / \ / \ V / / /
___) || | | |_| | \ V / \ V V / / \ | | / /_
|____/ |_| \___/ \_/ \_/\_/ /_/\_\ |_| /____|
Ausgabe:
ABCDEFGHI
JKLMNOPQR
STUVWXYZ
Eingang:
____ _____ _ ____ __ ___ ____ ____
/ ___|_ _|/ \ | _ \ \ \ / / \ | _ \/ ___|
\___ \ | | / _ \ | |_) | \ \ /\ / / _ \ | |_) \___ \
___) || |/ ___ \| _ < \ V V / ___ \| _ < ___) |
|____/ |_/_/ \_\_| \_\ \_/\_/_/ \_\_| \_\____/
Ausgabe:
STAR WARS
Beachten Sie, dass bei einer vorherigen Bearbeitung dieser Frage Eingaben zulässig sind, die Groß- und Kleinbuchstaben sowie Ziffern enthalten. Es wurde darauf hingewiesen, dass dies bei bestimmten benachbarten Zeichenkombinationen zu mehreren Mehrdeutigkeiten führte. Es wurde klar, dass ich rigoros eine Reihe von Charakteren ohne solche Kollisionen finden musste, damit der Wettbewerb tatsächlich durchgeführt werden kann. Zuerst habe ich mit diesem Shell-Einzeiler alle Kleinbuchstaben plus Ziffern ausprobiert:
for t in {0..9}{a..z} {a..z}{a..z} {a..z}{0..9} {0..9}{0..9} ; do figlet $t | tr '\n' ':'; echo ; done | sort | uniq -d | tr ':' '\n'
Dies ergab { j1
, jl
} und { i1
, il
} als mehrdeutige Paare. Stattdessen gibt es mit allen Großbuchstaben (wie von @AlexA vorgeschlagen) keine mehrdeutigen Paare:
for t in {A-Z} ; do figlet $t | tr '\n' ':'; echo ; done | sort | uniq -d | tr ':' '\n'
git://git.debian.org/git/collab-maint/figlet.git
(Download mit git clone
).
1
und l
sind nicht identisch, aber V1
und Vl
sind.