首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >键盘移位密码

键盘移位密码
EN

Code Golf用户
提问于 2018-02-05 13:42:35
回答 7查看 4.6K关注 0票数 21

鉴于以下投入:

  • 整数n,其中n > 0
  • 字符串s,其中s不为空,s~=[0-9A-Z]+ (仅为α-数字大写)。

使用标准、简化的QWERTY键盘(如下所示):

代码语言:javascript
运行
复制
1234567890
QWERTYUIOP
ASDFGHJKL
ZXCVBNM

执行以下操作:

  • 查找每个字符在键盘上的原始行。
  • 根据n的原始位置+ n. ,用正确的移位等价替换该字母。
    • s="AB"n=2A会变成DB会变成M

  • 如果是keyboard_row[position + n] > keyboard_row.length,请回到起点。
    • s="0P"n=20会变成2P会变成W

示例:

代码语言:javascript
运行
复制
f("0PLM",1)    = 1QAZ
f("ZXCVB",2)   = CVBNM
f("HELLO",3)   = LYDDW
f("0PLM",11)   = 1QSV
f("0PLM",2130) = 0PHX

规则

这比乍一看要困难一些。

EN

回答 7

Code Golf用户

发布于 2018-02-05 14:01:33

果冻,13字节

代码语言:javascript
运行
复制
ØQØDṭ,ṙ€¥⁸F€y

在网上试试!

是如何工作的

代码语言:javascript
运行
复制
ØQØDṭ,ṙ€¥⁸F€y  Main link. Left argument: n (integer). Right argument: s (string)

ØQ             Qwerty; set the return value to
               ["QWERTYUIOP", "ASDFGHJKL", "ZXCVBNM"].
  ØD           Digits; yield "0123456789".
    ṭ          Tack, yielding ["QWERTYUIOP", "ASDFGHJKL", "ZXCVBNM", "0123456789"].
        ¥⁸     Call the two links to the left as a dyadic chain, with right
               argument n.
      ṙ€       Rotate each string in the array n units to the left.
     ,         Yield the pair of the unmodified and the rotated string array.
          F€   Flatten each, mapping, e.g., ["QWERTYUIOP", ..., "0123456789"] to
               "QWERTYUIOPASDFGHJKLZXCVBNM0123456789".
            y  Translate s according to the mapping we've built.
票数 11
EN

Code Golf用户

发布于 2018-02-05 14:43:31

Python 2,110个字节

代码语言:javascript
运行
复制
lambda s,n,y='1234567890'*99+'QWERTYUIOP'*99+'ASDFGHJKL'*99+'ZXCVBNM'*99:''.join(y[y.find(c)+n%630]for c in s)

在网上试试!

这使用足够大的字符串(每一行的99份副本)和行长度(630)之间的LCM来查找正确的替换,避免了每一行之间的单独更正。

票数 9
EN

Code Golf用户

发布于 2018-02-05 13:50:59

果冻,18字节

代码语言:javascript
运行
复制
ØQØDṭẋ€‘}Ẏ©iЀ⁸+ị®

在网上试试!

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

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

复制
相关文章

相似问题

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