首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >北约的拼音可能需要很长时间。

北约的拼音可能需要很长时间。
EN

Code Golf用户
提问于 2020-11-20 10:22:22
回答 1查看 3.8K关注 0票数 42

北约拼音字母是一个拼法字母表,它与英语字母表中的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次拼写的字母数作为输出返回。示例:

代码语言:javascript
复制
MOUSE -> 11668858751132191916987463577721689732389027026909488644164954259977441
CAT -> 6687458044694950536360209564249657173012108297161498990598780221215929
DOG -> 5743990806374053537155626521337271734138853592111922508028602345135998

备注:

  • 白空间不算。只有字母才行。
  • 大写字母和小写字母都很好(包括大写和小写的组合)。
  • 如果您想使用不支持大整数的编程语言,返回结果模块化2^32也可以。
  • 结果必须是一个确切的整数,而不是近似(如浮点)。
  • CAT的第一次迭代是CHARLIE ALFA TANGO (CAT是第0次迭代)。

大注释:

如果程序存储拼写字符串,就不可能不耗尽内存:MOUSE的第100次迭代需要比10^70字节更多;互联网上的整个数据估计低于10^30字节。

北约拼写表:

代码语言:javascript
复制
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
EN

回答 1

Code Golf用户

发布于 2020-11-20 16:53:40

果冻,85字节

代码语言:javascript
复制
ċⱮØA
Çæ×“¢ị⁼Ɱ4ɦȷ3æ⁷ŀṣ⁶LṬⱮGṾxƬḟṬƊÆUFṡẉ⁴lṂṃȷỵḥṘ¤ʠḟẠṅṫSæßṠdċṣçẓẊẆPḲDṂƑĠṆṾ⁼Ɓ»ŒuḲÇ€æ*ȷ2¤FS

在网上试试!

我不知道如何比字典更好地压缩矩阵本身,所以这可能不会比凯恩斯的解决方案更短,但我认为无论如何都值得发布,因为它要快得多。不过,高尔夫可能还有一点空间,因为我已经能够通过手动处理未压缩的字符串来敲掉一个字节。

代码语言:javascript
复制
ċⱮØ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.
票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/215436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档