概念
记住数字可能很困难。记住一个单词可能会更容易。为了记住大数字,我创建了一种以类似leetspeak的方式发音的方法。
规则
每个数字首先用其对应的字母替换:
0 => O
1 => I
2 => R
3 => E
4 => A
5 => S
6 => G
7 => T
8 => B
9 => P
替换后,还做了另外两件事以提高发音:
在两个辅音之间
U
添加a。在两个元音之间,
N
添加a。
实例/测试案例
512431 => SIRANENI
834677081 => BENAGUTUTOBI
3141592 => ENINANISUPUR
1234567890 => IRENASUGUTUBUPO
6164817 => GIGABIT
不可能的事
- 字母和数字混合在同一个单词中
- 两个连续的辅音或两个连续的元音
- 不在上面列表中的字母
- 其他字符
规则
此代码高尔夫球的目标是为此概念创建2路转换器。
- 您的程序必须首先自己理解字母到数字还是数字到字母的翻译。
- 它必须检查条目是否正确形成。
- 如果一切正确,请显示译文。
- 否则,显示错误消息,不显示任何内容,返回假值或使程序崩溃。
细节
- 输入数字/字符串可以按照您想要的任何格式输入(stdin,自变量,...)
- 这是代码高尔夫球,因此最短的答案会获胜。
- 禁止出现标准漏洞。
AB23
; AEI
; BB
; Z
; ACE
; giga
; !@#$
;-123
; 同样,基于验证规则,我们可以转换6164735732 => GIGATESTER
,但GIGATESTER
由于ST
(两个连续的辅音规则)而将导致错误的值。当前设置挑战的方式,挑战的主要部分是验证而不是转换。我对此表示满意,但在这种情况下,验证应该定义得更好。
GIGATESTER
应该GIGATESUTER
吗?