首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的电影有多让人沮丧?

我的电影有多让人沮丧?
EN

Code Golf用户
提问于 2018-11-24 16:30:12
回答 7查看 3.1K关注 0票数 25

我父母有一个家庭影院设备。遥控器坏了,所以很难在菜单中向右导航。大多数情况下,它不起作用,但一旦起作用,它就会以惊人的速度向右移动。

这显然是令人沮丧的,但最令人沮丧的是,当您想要输入一个电影标题时,需要导航一个如下所示的键盘:

代码语言:javascript
运行
复制
a b c d e f
g h i j k l
m n o p q r
s t u v w x
y z 1 2 3 4
5 6 7 8 9 0

你的任务是以一个电影标题作为输入,并计算输入那个电影标题是多么“令人沮丧”。特定字符串的受挫数是要求从其前面的字母中直接移动的字母数。我们不关心他们有多远,因为如果我们开始向右移动,我们就会立即走到终点,我们不关心上、下、左的运动,因为他们很容易。

例如,如果我们想输入

代码语言:javascript
运行
复制
keyboard
  • 我们从k免费开始。
  • e刚好高于k,所以我们不需要向右移动。
  • y一直向左,所以不需要向右移动。
  • 然而,b在下一栏的右边,所以我们需要移动到正确的位置。
  • o在下一篇专栏文章中,所以我们必须向右移动才能到达它。
  • a回到了第一列,所以我们向左移动到它。
  • r一直在右边,所以我们就往前走。
  • dr's列左边的两列。

需要向右移动的字符是bor,这意味着这是挫折3。

附加规则

这是一个密码-高尔夫挑战,因此您的答案将以字节为单位得分,而更少的字节将更好。输入将始终由字母数字字符组成,您可以支持大写字母或小写字母,您只需要支持一个字母。输入永远不会是空的。

测试案例

代码语言:javascript
运行
复制
keyboard -> 3
2001aspaceodyssey -> 6
sorrytobotheryou -> 8
thinblueline -> 5
blast2 -> 3
EN

回答 7

Code Golf用户

发布于 2018-11-24 17:21:15

果冻,11字节

代码语言:javascript
运行
复制
⁾04yO‘%6<ƝS

一种接受(大写)字符列表的一元链接。

在网上试试!

怎么做?

首先,将任何'0's替换为'4's (因此其余代码将它们视为位于最右边的列中)。然后转换为序数,通过6添加一个和模块,以获得基于0的列索引。然后比较邻居和is-小于-并总结结果。

代码语言:javascript
运行
复制
⁾04yO‘%6<ƝS - Link: list of characters         e.g. "BLAST20"
⁾04         - list of characters = ['0', '4']
   y        - translate                             "BLAST24"
    O       - ordinals                              [66,76,65,83,84,50,52]
     ‘      - increment                             [67,77,66,84,85,51,53]
       6    - literal six
      %     - modulo                                [ 1, 5, 0, 0, 1, 3, 5]
         Ɲ  - neighbourly:
        <   -   less than?                          [  1, 0, 0, 1, 1, 1  ]
          S - sum                                   4
票数 7
EN

Code Golf用户

发布于 2018-11-25 19:36:16

杰夫特 -x,14字节

代码语言:javascript
运行
复制
®rT4 c Ä u6Ãä<

在网上试试!

港果冻回答。将输入作为字符数组,字母大写。

解释:

代码语言:javascript
运行
复制
®rT4 c Ä u6Ãä<    :
®          Ã      :Map each character through:
 rT4              : Replace 0 with 4
     c            : Get the char-code
       Ä          : Increment it
         u6       : Modulo 6
            ä<    :Replace with 1 if you had to move right, 0 otherwise
                  :Implicitly sum and output
票数 1
EN

Code Golf用户

发布于 2018-11-25 21:26:00

打扫,85字节

代码语言:javascript
运行
复制
import StdEnv
(\s=sum[1\\a<-s&b<-tl s|b>a])o map(\e=(toInt e+if(e-'1'>'/')1 -1)rem 6)

在网上试试!

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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