gpt4 book ai didi

word - Code Golf - Word Scrambler

转载 作者:行者123 更新时间:2023-12-03 18:17:00 28 4
gpt4 key购买 nike

请按照我在下面给出的示例输入和输出,用尽可能短的源代码回答将任意明文转换为其相应密文的程序。获得最少 CPU 时间或最少内存使用量的奖励积分*。

示例 1:

明文: 敏捷的棕色狐狸跳过了懒狗。 Supercalifragilisticexpialidocious!

密文: eTh kiquc nobrw xfo smjup rvoe eth yalz .odg !uioiapeislgriarpSueclfaiitcxildcos

示例 2:

明文: 123 1234 12345 123456 1234567 12345678 123456789

密文: 312 4213 53124 642135 7531246 86421357 975312468

规则:

  • 标点符号被定义为包含在它最接近的单词中。
  • 一个词的中心定义为ceiling((strlen(word)+1)/2)。
  • 空白被忽略(或折叠)。
  • 奇数词先向右移动。甚至单词也先向左移动。

  • 您可以将其视为向后读取所有其他字符(从单词末尾开始),然后向前读取其余字符。公司 => XoXpXrXtXoX => niaorCoprto。

    感谢那些指出我的描述不一致的人。这导致你们许多人走上了错误的道路,对此我深表歉意。规则#4 应该清除问题。

    *只有在 Jeff Atwood 决定这样做的情况下才会授予奖励积分。因为我没有和他核实过,所以可能性很小。对不起。

    最佳答案

    Python,50 个字符

    用于输入 i :

    ' '.join(x[::-2]+x[len(x)%2::2]for x in i.split())

    处理自己的 IO 的替代版本:
    print ' '.join(x[::-2]+x[len(x)%2::2]for x in raw_input().split())

    如果包括空格,总共 66 个字符。 (从技术上讲,如果从命令行运行,可以省略 print,因为代码的评估值默认显示为输出。)

    使用 reduce 的替代版本:
    ' '.join(reduce(lambda x,y:y+x[::-1],x) for x in i.split())

    59 个字符。
    i 中输入的原始版本(偶数和奇数都先向右) :
    ' '.join(x[::2][::-1]+x[1::2]for x in i.split())

    48 个字符,包括空格。

    另一个替代版本(虽然略长)效率更高:
    ' '.join(x[len(x)%2-2::-2]+x[1::2]for x in i.split())

    (53 个字符)

    关于word - Code Golf - Word Scrambler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1430475/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com