figletце утиліта, яка перетворює звичайний текст у зображення ascii-art для використання у банерах тощо. Наприклад:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
Напишіть програму або функцію, яка бере вихідний результат figletі повертає його до початкового простого тексту.
Вам може бути корисно встановити figlet. У мене є версія 2.2.5, яку ви отримуєте, якщо перебуваєте sudo apt-get install figletна Ubuntu 14.04. Ця філечка насправді має кілька «шрифтів». Для цілей цього контексту ми просто матимемо справу зі standardшрифтом за замовчуванням .
Текст вводу буде не більше 80 символів, і він буде створений із простого тексту, що містить лише великі літери та пробіл.
Ваша програма ні figletв якому разі не може телефонувати або її вихідний код.
Приклад
Вхід:
_ ____ ____ ____ _____ _____ ____ _ _ ___
/ \ | __ ) / ___| _ \| ____| ___/ ___| | | |_ _|
/ _ \ | _ \| | | | | | _| | |_ | | _| |_| || |
/ ___ \| |_) | |___| |_| | |___| _|| |_| | _ || |
/_/ \_\____/ \____|____/|_____|_| \____|_| |_|___|
_ _ ___ __ __ _ _ ___ ____ ___ ____
| | |/ / | | \/ | \ | |/ _ \| _ \ / _ \| _ \
_ | | ' /| | | |\/| | \| | | | | |_) | | | | |_) |
| |_| | . \| |___| | | | |\ | |_| | __/| |_| | _ <
\___/|_|\_\_____|_| |_|_| \_|\___/|_| \__\_\_| \_\
____ _____ _ ___ ____ ____ ____ _______
/ ___|_ _| | | \ \ / /\ \ / /\ \/ /\ \ / /__ /
\___ \ | | | | | |\ \ / / \ \ /\ / / \ / \ V / / /
___) || | | |_| | \ V / \ V V / / \ | | / /_
|____/ |_| \___/ \_/ \_/\_/ /_/\_\ |_| /____|
Вихід:
ABCDEFGHI
JKLMNOPQR
STUVWXYZ
Вхід:
____ _____ _ ____ __ ___ ____ ____
/ ___|_ _|/ \ | _ \ \ \ / / \ | _ \/ ___|
\___ \ | | / _ \ | |_) | \ \ /\ / / _ \ | |_) \___ \
___) || |/ ___ \| _ < \ V V / ___ \| _ < ___) |
|____/ |_/_/ \_\_| \_\ \_/\_/_/ \_\_| \_\____/
Вихід:
STAR WARS
Зверніть увагу, що попереднє редагування цього питання дозволяло вводити великі і малі літери плюс цифри. Вказувалося, що це викликало кілька неоднозначностей із певними суміжними поєднаннями символів. Стало очевидним, що мені потрібно жорстко знайти набір персонажів без таких зіткнень, щоб конкурс був реально здійсненним. Спочатку я спробував усі малі літери плюс цифри з одношаровою оболонкою:
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'
Це дало { j1, jl} і { i1, il} як неоднозначні пари. Отже, замість усіх великих літер (як це запропонував @AlexA.), Неоднозначних пар немає:
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(завантажити з git clone).
1і lне є ідентичними, але V1і Vlє.