在HBO的节目“电线”中,经销商使用一种编码电话号码的系统,他们在号码簿上“跳过5”。
+-----------+
| 1 | 2 | 3 |
+-----------+
| 4 | 5 | 6 |
+-----------+
| 7 | 8 | 9 |
+-----------+
| # | 0 | * |
+-----------+"1“变成"9","4”变成"6“等等。和"5“和"0”互换位置。因此,输入编号2983794-07变成8127316-53。#和*是未定义的。显示中的输入是带有破折号的数字,您的代码不需要保留这个破折号,但是它需要接受它。对于如何处理用户交互,没有真正的限制,可以是一个需要的函数或控制台应用程序。
评分标准:
这是一个暗号高尔夫,最少的字符获胜。用数字/字符交换或数组查找来解决这个问题会造成100个字符的损失(为了避免"9876043215"[i]-style查找,我试图大致地画一个笔画)。10字符奖励没有剥除破折号。
发布于 2014-10-21 15:23:25
函数接受字符串。
-被转换成=..。所以这个破折号不仅仅是保存下来的,还有两倍的数量?
@(n)106-n-5*(n==48|n==53)发布于 2014-10-21 21:24:48
tr 0-9 5987604321发布于 2014-10-21 15:05:52
f=_=>_.replace(/\d/g,y=>y%5?10-y:5-y)在最新的火狐浏览器上试一试
f("2983794-07")https://codegolf.stackexchange.com/questions/40094
复制相似问题