4状态条形码
许多邮政服务(英国皇家邮政,加拿大邮政,美国邮政等)都使用4状态条形码对有关其邮件的信息进行编码。以ASCII呈现,可能看起来像这样:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
4状态条形码是一行条。每个杆都可以向上,向下或两者同时延伸,从而有4种可能性。这意味着每个条形图基本上代表一个以4为底的数字:
| | 酒吧:| | | | | 位数:0 1 2 3
该符号体系的问题在于,每个条形码都是有效的,上下颠倒的不同条形码:如果方向不正确,则会大大改变含义。因此,通常会执行开始和停止序列,以便扫描仪可以计算应该以哪种方式读取它。
为了解决这一挑战,我们将使用澳大利亚邮政指定的开始/停止序列:每个条形码以一个1 0
序列开头和结尾。
挑战
您的任务是编写一个程序或函数,将给定的正整数N
将其转换为ASCII 4状态条形码,其中每个小节(起始/停止序列除外)代表的以4为基的数字N
。
例:
给定整数19623
,我们首先将其转换为以4为基数的表示形式10302213
。
然后,我们将每个数字映射到相应的条形:
1 0 3 0 2 2 1 3 | | | | | | | | | | | | | | | |
最后,我们将添加开始/停止序列:
开始:结束: 1 0 1 0 | | | | | | | | | | | | | | | | | | | | | |
产生的条形码应该是程序的输出。
规则:
- 输入将是一个正整数,在您语言的标准整数大小范围内。
- 输出:
- 可以是行列表,也可以是包含换行符的字符串。
- 只要形状保持不变,就可以包含前导或尾随的换行符/空格。
- 应该以上述格式显示条形码- 绘制条时必须使用竖线字符(
|
)和空格字符(),并且每根竖线之间必须有1个空格。
- 这是代码高尔夫球,因此最短的程序(以字节为单位)获胜!
测试用例
4095:
| | | | | | | | | | | | | | | | | | | | | | | |
4096:
| | | | | | | | | | | | | |
7313145:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |