我的第一个编程拼图和代码高尔夫球是“ 七斜线显示器”。这是我的第一个挑战,也是基于7段显示的。
除了数字以外,我经常考虑使用简单的7段显示器可以显示哪种字母。原来可以显示很多字母。实际上,除字母K,M,V,W,X之外的所有字母都可以使用单个7段显示器显示。这是因为您可以显示字母的小写或大写。例如
“ abcdef”可以显示为
_ _ _ _
!_!!_ ! _!!_ !_
! !!_!!_ !_!!_ !
请注意,每个字符都是由!
和组成的3x3矩阵_
。
当然,可以使用7段显示器来显示数字和符号:
_ _ _ _ _ _ _
! _ !_ !_ ! _! !!_ !_!! !_!!_!
! _!!_ !_! !_! ! _!! !_ ! ! _!
某些字母可以同时大小写:
_ _
! _ !_!!_ ! ! ! _ ! !
!_ !_ ! !! ! ! !!_!!_!!_!!_!
这是完整的字符集:
_ _ _ _ _ _ _ _ _
! ! ! _! _!!_!!_ !_ !!_!!_! _ !_ _ _ _!
!_! !!_ _! ! _!!_! !!_! _! !_ ! ! !!_!!_! !
_ _ _ _ _ _ _ _ _ _
!_!!_ ! _!!_ !_ ! !_! ! !! _ ! !!_!!_! _ !_ !_ ! !!_! _!
! !!_!!_ !_!!_ ! !_!! ! !!_!!_ ! !!_!! !! _!!_ !_! _!!_
注意,有一个空格(),破折号(
-
)和问号(?
)。信中I
,O
和Z
是相同的号码1
,0
并2
分别。
在此挑战中,您将编写一个程序或函数来使用上面的7段显示格式显示字符串。
规则
您可以编写程序或函数
这是代码高尔夫球,以字节为单位的最短代码胜出
您的程序或函数应采用来自STDIN的输入或作为参数。并将一个字符串输出到STDOUT或作为3行的字符串输出,不带前导空格,但以换行符终止。
CHIOU
正确处理上/下外壳。您可以选择打印尾随空白
您必须遵循上面的格式。使用下划线
_
和感叹号!
形成您的7段显示器。您必须支持空格(
),破折号(
-
)和问号(?
)如果字符串包含不受支持的字符(k,m,v,w,x),则显示单个错误字符(3个水平线,请参见示例)。除了5个不受支持的字符外,您可以假定输入仅由受支持的字符集组成。
l
由于混淆,我选择不使用小写字母L()字母,但是如果您倾向,可以将其显示为左右两个字母1
。
例子
$./a.out Start
_ _
!_ !_ !_! _ !_
_!!_ ! !! !_
$./a.out "7-seg dIsplay"
_ _ _ _ _ _ _
! _ !_ !_ ! _! !!_ !_!! !_!!_!
! _!!_ !_! !_! ! _!! !_ ! ! _!
$./a.out "0123456789 chiou-?"
_ _ _ _ _ _ _ _ _
! ! ! _! _!!_!!_ !_ !!_!!_! _ !_ _ _ _!
!_! !!_ _! ! _!!_! !!_! _! !_ ! ! !!_!!_! !
$./a.out "ABCDEFGHIJLNOPQRSTUZ"
_ _ _ _ _ _ _ _ _ _
!_!!_ ! _!!_ !_ ! !_! ! !! _ ! !!_!!_! _ !_ !_ ! ! _!
! !!_!!_ !_!!_ ! !_!! ! !!_!!_ ! !!_!! !! _!!_ !_!!_
$./a.out "abcdefghijlnopqrstuz"
_ _ _ _ _ _ _ _
!_!!_ _ _!!_ !_ ! !_ !! _ _ !_!!_! _ !_ !_ _!
! !!_!!_ !_!!_ ! !_!! ! !!_!!_ ! !!_!! !! _!!_ !_!!_
$./a.out "Bad Form"
_
_
_
$./a.out "Hello"
_
!_!!_ ! ! _
! !!_ !_ !_ !_!
$./a.out "World"
_
_
_
\r
)与换行符(LF,\n
)混淆了。* nix使用LF,Windows使用CRLF。仅某些传统系统本身会使用CR。此处的更多信息:en.wikipedia.org/wiki/Newline
k, m, v, w, x
不会显示。