figlet
是一种实用程序,可将纯文本转换为可在横幅等中使用的ascii-art表示形式。例如:
$ figlet "CODE GOLF"
____ ___ ____ _____ ____ ___ _ _____
/ ___/ _ \| _ \| ____| / ___|/ _ \| | | ___|
| | | | | | | | | _| | | _| | | | | | |_
| |__| |_| | |_| | |___ | |_| | |_| | |___| _|
\____\___/|____/|_____| \____|\___/|_____|_|
$
编写一个程序或函数,将ascii-art输出从中获取figlet
并返回到其原始纯文本。
安装可能对您有所帮助figlet
。我有版本2.2.5,这是sudo apt-get install figlet
在Ubuntu 14.04上获得的版本。这个Figlet实际上有几个“字体”。就此而言,我们将使用默认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'
5
我建议您使用“您不得调用figlet”子句,因为否则,最短的程序肯定会迭代所有可能的字符串,在它们上调用figlet,然后进行比较以得出相等性。
—
orlp
可以在以下git repo中找到figlet的源代码:(使用
—
门把手
git://git.debian.org/git/collab-maint/figlet.git
下载git clone
)。
注意:这个挑战很难编码,更不用说高尔夫了。
—
林恩
1
和l
不相同,但V1
和Vl
。
对于没有可运行figlet的系统的人们,有各种在线版本。搜索“在线Figlet”。例如,这个看起来很简单而且没有广告:network-science.de/ascii。确保选择“标准”字体。
—
Reto Koradi