挑战
以字符数量最少的代码绘制 Code 39 条形码的 ASCII 表示。
Code 39 的维基百科文章: http://en.wikipedia.org/wiki/Code_39
输入
输入将是一个字符串,其中包含用于 Code 39 条形码的合法字符。这意味着有 43 个字符是有效的:0
-9
、A
-Z
、空格和-.$/+%
。输入中不会出现 *
字符,因为它用作起始和终止字符。
输出
Code 39 条形码中每个编码字符都有九个元素,五个条和四个空格。条将由字符 #
表示,空格将由空格字符表示。其中三个元素是宽度为三个字符的宽元素,其余为宽度为一个字符的窄元素。应在每个字符模式之间添加一个单空格的字符间隔。该模式应重复,以使条形码的高度为八个字符高。
起始/停止字符 *
(bWbwBwBwb)应表示为:
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
^ ^ ^^ ^ ^ ^ ^^^
| | || | | | |||
narrow bar -+ | || | | | |||
wide space ---+ || | | | |||
narrow bar -----+| | | | |||
narrow space ------+ | | | |||
wide bar --------+ | | |||
narrow space ----------+ | |||
wide bar ------------+ |||
narrow space --------------+||
narrow bar ---------------+|
inter-character space ----------------+
- 在条形码的开头和结尾需要输出字符
*
- 条形码前后不需要包含静态空间。
- 无需计算校验位。
- 仅需要标准的43个字符,不需要完整的ASCII Code39编码。
- 不需要在ASCII条形码表示下方打印文本以标识输出内容。
- 如果需要,可以用更高密度的另一个字符替换字符
#
。使用全块字符U+2588可使条形码在打印时实际扫描。
测试案例
Input:
ABC
Output:
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
Input:
1/3
Output:
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
Input:
- $ (minus space dollar)
Output:
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
代码计数包括输入/输出(完整程序)。