北约拼音字母是一个拼法字母表,它与英语字母表中的26个字母中的每个字母相关联,其中一个单词(下表)在收音机或电话中很容易理解。例如,如果您想通过电话交流单词CAT,请执行以下拼写:
CHARLIE ALFA TANGO
但是,如果你不确定拼写是否正确呢?好吧,你做拼写:
CHARLIE HOTEL ALFA ROMEO LIMA INDIA ECHO ALFA LIMA FOXTROT ALFA TANGO ALFA NOVEMBER GOLF OSCAR
但是现在你担心拼写的拼写没有被正确理解,所以你不得不做拼写的拼写:
CHARLIE HOTEL ALFA ROMEO LIMA INDIA ECHO HOTEL OSCAR TANGO ECHO LIMA ALFA LIMA FOXTROT ALFA ROMEO OSCAR MIKE ECHO OSCAR LIMA INDIA MIKE ALFA INDIA NOVEMBER DELTA INDIA ALFA ECHO CHARLIE HOTEL OSCAR ALFA LIMA FOXTROT ALFA LIMA INDIA MIKE ALFA FOXTROT OSCAR XRAY TANGO ROMEO OSCAR TANGO ALFA LIMA FOXTROT ALFA TANGO ALFA NOVEMBER GOLF OSCAR ALFA LIMA FOXTROT ALFA NOVEMBER OSCAR VICTOR ECHO MIKE BRAVO ECHO ROMEO GOLF OSCAR LIMA FOXTROT OSCAR SIERRA CHARLIE ALFA ROMEO
挑战:编写一个函数,以一个单词作为输入,并将北约第100次拼写的字母数作为输出返回。示例:
MOUSE -> 11668858751132191916987463577721689732389027026909488644164954259977441
CAT -> 6687458044694950536360209564249657173012108297161498990598780221215929
DOG -> 57439908063740535371556265213372717341388535921119225080286023451359982^32也可以。CAT的第一次迭代是CHARLIE ALFA TANGO (CAT是第0次迭代)。如果程序存储拼写字符串,就不可能不耗尽内存:MOUSE的第100次迭代需要比10^70字节更多;互联网上的整个数据估计低于10^30字节。
A -> ALFA
B -> BRAVO
C -> CHARLIE
D -> DELTA
E -> ECHO
F -> FOXTROT
G -> GOLF
H -> HOTEL
I -> INDIA
J -> JULIETT
K -> KILO
L -> LIMA
M -> MIKE
N -> NOVEMBER
O -> OSCAR
P -> PAPA
Q -> QUEBEC
R -> ROMEO
S -> SIERRA
T -> TANGO
U -> UNIFORM
V -> VICTOR
W -> WHISKEY
X -> XRAY
Y -> YANKEE
Z -> ZULU发布于 2020-11-20 16:53:40
ċⱮØA
Çæ×“¢ị⁼Ɱ4ɦȷ3æ⁷ŀṣ⁶LṬⱮGṾxƬḟṬƊÆUFṡẉ⁴lṂṃȷỵḥṘ¤ʠḟẠṅṫSæßṠdċṣçẓẊẆPḲDṂƑĠṆṾ⁼Ɓ»ŒuḲÇ€æ*ȷ2¤FS我不知道如何比字典更好地压缩矩阵本身,所以这可能不会比凯恩斯的解决方案更短,但我认为无论如何都值得发布,因为它要快得多。不过,高尔夫可能还有一点空间,因为我已经能够通过手动处理未压缩的字符串来敲掉一个字节。
ċⱮØA Monadic helper link, convert string to letter frequencies:
Ɱ for each element of
ØA "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
ċ count how many times it occurs in the argument.
Çæ×“...»ŒuḲÇ€æ*ȷ2¤FS Main link:
æ× matrix multiply
Ç the input's letter frequencies
¤ by:
“...» "alfa bravo Charlie delta echo foxtrot golf hotel India Juliett kilo mail Mike November Oscar papa Quebec Romeo sierra tango uniform Victor whiskey rayx Yankee Zulu"
Œu uppercased
Ḳ and split on spaces,
Ç€ with each word converted to letter frequencies
æ*ȷ2 and the resulting matrix multiplied by itself 100 times.
F Flatten the resulting vector
S and return its sum.https://codegolf.stackexchange.com/questions/215436
复制相似问题