首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >信,快走!Pt。2

信,快走!Pt。2
EN

Code Golf用户
提问于 2016-01-07 17:37:23
回答 4查看 691关注 0票数 18

第一个信,快走!非常受欢迎,但参与有限。这一个将更容易解决,但希望涉及一些技巧在高尔夫。

只给您一串小写字母。对于每个字母,在字母表m中的位置,移动它,使它成为m_th字母从末尾。如果_m的值大于字符串的长度,则将其移动到最前面。只输出完全转换的字符串。

示例:

“长颈鹿”

  • 'g‘是字母表中的第7个字母,它已经是后面的第7个字母了,所以留下它吧。
  • 'i‘是第9个字母,因为9比单词的长度大,所以字符串变成igraffe
  • 'r‘是第18个字母,就像'i’--它放在前面:rigaffe
  • ‘’是第一个字母,它的结尾是:rigffea
  • 'f‘是第6个字母,从后面变成第6个字母:rfigfea
  • 下一个'f‘也是第6个字母,所以它也从后面转到第6个字母:rffigea
  • 'e‘是第五个字母,从后面转到第五个字母:rfefiga

“花”

  • 'f‘(6) => flower
  • 'l‘(12) => lfower
  • 'o‘(15) => olfwer
  • 'w‘(23) => wolfer
  • 'e‘(5) => weolfr
  • 'r‘(18) => rweolf

“菠萝”

  • 'p‘(16) => pineapple
  • 'i‘(9) => ipneapple
  • 'n‘(14) => nipeapple
  • 'e‘(5) => nipaepple
  • ‘’(1) => nipepplea
  • 'p‘(16) => pnipeplea
  • 'p‘(16) => ppnipelea
  • 'l‘(12) => lppnipeea
  • 'e‘(5) => lppneipea (确保移动尚未移动的e!在这里,这并不重要,但低于它的重要性。)

感谢@Neil改进了测试用例,增加了以下3项内容:

“披萨”

  • 'p‘(16) => pizza
  • 'i‘(9) => ipzza
  • 'z‘(26) => zipza
  • 'z‘(26) => zzipa (移动第二个z!)
  • ‘’(1) => zzipa

"abracadabra"

  • ‘’(1) => bracadabraa
  • 'b‘(2) => racadabraba
  • 'r‘(18) => racadabraba
  • ‘’(1) => rcadabrabaa
  • 'c‘(3) => radabrabcaa
  • ‘’(1) => rdabrabcaaa
  • D‘(4) => rabrabcdaaa
  • ‘’(1) => rbrabcdaaaa
  • 'b‘(2) => rrabcdaaaba
  • 'r‘(18) => rrabcdaaaba
  • ‘’(1) => rrbcdaaabaa

"characters"

  • 'c‘(3) => haractecrs
  • 'h‘(8) => arhactecrs
  • ‘’(1) => rhactecrsa
  • 'r‘(18) => rhactecrsa
  • ‘’(1) => rhctecrsaa
  • 'c‘(3) => rhtecrscaa
  • T‘(20) => trhecrscaa
  • 'e‘(5) => trhcrescaa
  • 'r‘(18) => rtrhcescaa
  • ‘’(19) => srtrhcecaa
EN

回答 4

Code Golf用户

发布于 2016-01-07 18:04:58

Python3,78字节.

由于orlp保存了2个字节。

由于DSM保存了7个字节。

代码语言:javascript
复制
x=input()
y=[]
for z in x:m=max(len(x)-ord(z)+96,0);y[m:m]=z
print(''.join(y))

将单词构建为一个列表,然后加入它。

票数 5
EN

Code Golf用户

发布于 2022-11-03 06:33:30

骑士 (v2),58字节

代码语言:javascript
复制
;=i~!=sP;W<=i+1iLs=sI>0=l-L=tSs iT@-A=cGs iT95+c tSt lFcOs

在网上试试!

扩大:

代码语言:javascript
复制
; = idx ~1 # ie -1
; = str PROMPT
; WHILE < (= idx + idx 1) (LENGTH str)
    ; = chr GET str idx 1 # ie get the char at index `idx`
    ; = tmp SET str idx 1 "" # delete that chr
    ; = index - (LENGTH str) (- (ASCII chr) 95)
    : = str
        IF (> 0 index)
            : + chr tmp
        # ELSE:
            : SET tmp index 0 chr # insert the char there
: OUTPUT str
票数 2
EN

Code Golf用户

发布于 2022-11-02 21:31:23

红宝石,56字节

摩根Thrapp的Python回答港。

代码语言:javascript
复制
->x{y=[]
x.chars{y[[x.size-_1.ord+96,0].max,0]=_1}
y*""}

在网上试试!

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

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

复制
相关文章

相似问题

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