figlet
es una utilidad que convierte texto plano en una representación de arte ascii para usar en pancartas y similares. Por ejemplo:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
Escriba un programa o función que tome el resultado de ascii-art figlet
y lo devuelva a su texto plano original.
Puede ser útil para usted instalarlo figlet
. Tengo la versión 2.2.5 que es lo que obtienes si estás sudo apt-get install figlet
en Ubuntu 14.04. Este figlet en realidad tiene varias "fuentes". Para los fines de este contexto, solo trataremos con la standard
fuente predeterminada .
El texto de entrada no tendrá más de 80 caracteres de ancho y se habrá generado a partir de texto sin formato que contenga solo los caracteres en mayúscula y el espacio.
Su programa no puede llamar figlet
ni su código fuente de ninguna manera.
Ejemplo
Entrada:
_ ____ ____ ____ _____ _____ ____ _ _ ___
/ \ | __ ) / ___| _ \| ____| ___/ ___| | | |_ _|
/ _ \ | _ \| | | | | | _| | |_ | | _| |_| || |
/ ___ \| |_) | |___| |_| | |___| _|| |_| | _ || |
/_/ \_\____/ \____|____/|_____|_| \____|_| |_|___|
_ _ ___ __ __ _ _ ___ ____ ___ ____
| | |/ / | | \/ | \ | |/ _ \| _ \ / _ \| _ \
_ | | ' /| | | |\/| | \| | | | | |_) | | | | |_) |
| |_| | . \| |___| | | | |\ | |_| | __/| |_| | _ <
\___/|_|\_\_____|_| |_|_| \_|\___/|_| \__\_\_| \_\
____ _____ _ ___ ____ ____ ____ _______
/ ___|_ _| | | \ \ / /\ \ / /\ \/ /\ \ / /__ /
\___ \ | | | | | |\ \ / / \ \ /\ / / \ / \ V / / /
___) || | | |_| | \ V / \ V V / / \ | | / /_
|____/ |_| \___/ \_/ \_/\_/ /_/\_\ |_| /____|
Salida:
ABCDEFGHI
JKLMNOPQR
STUVWXYZ
Entrada:
____ _____ _ ____ __ ___ ____ ____
/ ___|_ _|/ \ | _ \ \ \ / / \ | _ \/ ___|
\___ \ | | / _ \ | |_) | \ \ /\ / / _ \ | |_) \___ \
___) || |/ ___ \| _ < \ V V / ___ \| _ < ___) |
|____/ |_/_/ \_\_| \_\ \_/\_/_/ \_\_| \_\____/
Salida:
STAR WARS
Tenga en cuenta que una edición anterior de esta pregunta permitió entradas que contenían letras mayúsculas y minúsculas más números. Se señaló que esto causó varios puntos de ambigüedad con ciertas combinaciones de caracteres adyacentes. Se hizo obvio que necesitaba encontrar rigurosamente un conjunto de personajes sin tales colisiones para que el concurso sea factible. Al principio probé todas las letras minúsculas más los números con este shell de una línea:
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'
Esto produjo { j1
, jl
} y { i1
, il
} como pares ambiguos. Entonces, en lugar de todas las letras mayúsculas (como lo sugiere @AlexA.), No hay pares ambiguos:
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
(descargar congit clone
).1
yl
no son idénticos, peroV1
yVl
son.Respuestas:
CJam, 147 bytes, ligeramente roto
Pasa CÓDIGO GOLF y AZ pero no STAR WARS (que se lee como
SAR WARS
). Me rindo, pero tal vez alguien está inspirado.fuente