首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印iPhones列表

打印iPhones列表
EN

Code Golf用户
提问于 2020-03-08 02:29:48
回答 23查看 4.9K关注 0票数 28

根据iPhone :编写最短的程序,按顺序打印完整的iPhone迭代列表:

代码语言:javascript
复制
iPhone
iPhone 3G
iPhone 3GS
iPhone 4
iPhone 4S
iPhone 5
iPhone 5c
iPhone 5s
iPhone 6
iPhone 6 Plus
iPhone 6s
iPhone 6s Plus
iPhone SE
iPhone 7
iPhone 7 Plus
iPhone 8
iPhone 8 Plus
iPhone X
iPhone XR
iPhone XS
iPhone XS Max
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max

输出应该按照指定的方式打印,尽管允许使用尾换行符(以及每行末尾的额外空格)。

这是代码高尔夫,所以最短的答案,以字节为单位,每种语言,获胜。

EN

回答 23

Code Golf用户

发布于 2020-03-08 03:22:37

///,108个字节

简单地将#替换为\niPhone。(顺便说一句,进一步的压缩不起作用。)

代码语言:javascript
复制
/#/
iPhone //@/ Plus/iPhone#3G#3GS#4#4S#5#5c#5s#6#6@#6s#6s@#SE#7#7@#8#8@#X#XR#XS#XS Max#11#11 Pro#11 Pro Max

在网上试试!

///,103个字节

这只有在前面的换行符被允许的情况下才能工作。

代码语言:javascript
复制
/#/
iPhone //@/ Plus/##3G#3GS#4#4S#5#5c#5s#6#6@#6s#6s@#SE#7#7@#8#8@#X#XR#XS#XS Max#11#11 Pro#11 Pro Max

在网上试试!

票数 4
EN

Code Golf用户

发布于 2020-03-08 06:40:22

05AB1E,81字节

代码语言:javascript
复制
11”3G3GS44S55c5s66‰´6s6s‰´SE77‰´88‰´XXRXSXSî£ÿÿˆ×ÿˆ×•ΛΩ&°ŽäÞнã•0šTª£'i”ƒ¿ ”«ì»

在网上试试!

我没有时间重新分析。

原始解决方案,178个字节

代码语言:javascript
复制
'i”ƒ¿”«D… 3G«D'S«.ÀD.Á„ 4«D'S«.ÀD.Á„ 5«Ð'c«s's«.ÀD.Á„ 6«D" Plus"D.Á«sDŠ's«D.À«.ÀD.Á… SE«.ÀD.Á„ 7«D" Plus"D.Á«.À.ÀD.Á„ 8«DŠs«.ÀD.Á„ X«Ð'R«s'S«D" Max"D.Á«.À.ÀD.Á… 11«DŠ" Pro"«DŠs«»

在网上试试!

解释

首先,我使用iPhone推送字符串“'i”ƒ¿”«”。

我复制,并推动“3G",并连接他们得到"iPhone 3G”。

在此之后,我使用.ÀD.Á获取堆栈顶部的"iPhone“,等等。

当我到达iPhone 6时,我将“Plus”放在堆栈的底部,并将其保存到iPhone 6S Plus中。

我不把它保存到iPhone 7和8 Plus,因为我不确定它是否会减少一些字节,而且我已经花了足够的时间来计算它。

但是我保存了,而且我非常肯定保存“Plus”会减少更多的字节。然而,现在这个计划已经完成了,我还不清楚我是如何做到的。

最后,我将整个堆栈与换行符连接起来,然后进行隐式输出。

票数 4
EN

Code Golf用户

发布于 2020-03-09 00:14:01

果冻,83 字节数

代码语言:javascript
复制
“Ø^ÞṠṠẠ'Ḣߥ»=⁶œṗ;11;“RcGEs436X578 ”µ“ƈ`¿øÐ⁽ḞÆCḊḋɲÑF×GÇz ⁸¦MƊ‘ד£¿Þ瑦5ŻṃµṚ“®Ɲ,»,K)Y

在网上试试!

怎么做?

使用十八个非"iPhone“部件,从大数十八的大端数构造每一行,然后用”iPhone“作为前缀,并用换行符联接。

使用的部件是(逗号分隔的):Max, Plus, Pro, ,S,R,c,G,E,X,s,3,4,5,6,7,8,11

选择了到18位数字的映射,以便:

  1. 空格字符是一个零-允许一个字节加在零前面-零来做第一行。
  2. 没有两位数的“数字”大于255 --允许使用代码页索引进行编码。
  3. 三位数字“数字”(S,G,3Plus,s,6Max,S,X;和Max, Pro,11)都是5的精确倍数(小于1275) --允许使用代码页索引进行编码,并使用后乘来获得它们的全部值。
  4. 这三个单词是相邻的,不占用数字1,允许使用分割前空格应用程序进行压缩。

其中一种(1-索引)排序是:S, Max, Plus, Pro,11,R,c,G,E,s,4,3,6,X,5,7,8,

因此,代码的工作方式如下:

代码语言:javascript
复制
“...»=⁶œṗ;11;“...”µ“...‘ד£¿Þ瑦5ŻṃµṚ“®Ɲ,»,K)Y - Main Link: no arguments
“...»                                          - string = "S"+" Max"+" Plus"+" Pro"
      ⁶                                        - space character
     =                                         - equals? (vectorises)
       œṗ                                      - partition before truthy indices
         ;11                                   - concatenate 11
             “...”                             - list of characters "RcGEs436X578 "
            ;                                  - concatenate
                                               - giving our "digits" [1,2,...,17,0]
                  µ                            - start a new monadic chain
                   “...‘                       - list of code-page indices = [156, 96, 11, 29, 15, 141, 195, 13, 67, 193, 233, 163, 16, 70, 17, 71, 14, 122, 32, 136, 5, 77, 145]
                               ¦               - sparse application...
                                               - ...to indices:
                         “£¿Þç‘                -   code-page indices = [2, 11, 20, 23]
                        ×       5              - ...do: multiply by five -> [156, 480, 11, 29, 15, 141, 195, 13, 67, 193, 1165, 163, 16, 70, 17, 71, 14, 122, 32, 680, 5, 77, 725]
                                 Ż             - prepend a zero
                                  ṃ            - base-decompress (convert to base-18 using the "digits")
                                               -   e.g. 680 -> [2, 1, 14] -> [" Max",'S','X']
                                   µ        )  - for each:
                                    Ṛ          -   reverse it (e.g. [" Max",'S','X'] -> ['X','S'," Max"])
                                     “®Ɲ,»     -   string = "iPhone"
                                          ,    -   pair
                                           K   -   join with a space character
                                             Y - join with newline characters
                                               - implicit, smashing print
票数 4
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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