首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印在聊天中键入\`的说明

打印在聊天中键入\`的说明
EN

Code Golf用户
提问于 2021-06-22 16:46:43
回答 11查看 1.5K关注 0票数 22

背景

从所有尝试(除了使用ZWSPs作弊)中可以看出,您不能在`\中键入堆栈交换聊天。但是,您可以通过执行\`来键入`\\``

因此,如果您想告诉聊天中的人如何键入反斜杠-反勾号,则需要键入`\`\\`\```\\``格式化为代码块。

挑战

您的挑战将是获取一串反向代码和反斜杠,并输出一串反斜杠和反斜杠,当您将其输入SE chat时,这些反斜杠和反斜杠将被格式化(作为代码块)。您可以在聊天沙箱中测试这一点。

需要注意的一点是,反斜杠阻止下一个反斜杠启动或结束代码块,但反斜杠实际上不会使下一个反斜杠不能转义--基本上,三个反斜杠和一个反斜杠将变成两个文字反斜杠和一个文字反斜杠,后者将不再充当代码块分隔符。

因此,解决这一难题的一种方法是将每个反斜杠块(包括连续的反斜杠之间的零长度反斜杠)添加到每个反斜杠中,然后用反斜杠包围字符串。

您可以假设这是可能的;也就是说,输入不会以反斜杠结尾。您也不需要处理空输入。

输入/输出

输入和输出将作为反划线和反斜杠的字符串提供。对于这个挑战,您必须特别使用这些字符。您可以将输入或输出作为一个单一的字符列表,并且输入和输出不必使用相同的格式。

测试用例

这些测试用例遵循我的示例解决方案。我不知道是否存在另一种解决方案,但如果您能够找到一种适用于SE chat的替代方案,而不仅仅是上述方法,我可能会提供奖励。

代码语言:javascript
复制
\`                => `\\``
`\\`\`\\``        => `\`\\\`\\`\\\`\``
`\`\\\`\\`\\\`\`` => `\`\\`\\\\`\\\`\\\\`\\`\``
``````            => `\`\`\`\`\`\``

=>‘\

=>``

\\\\\\\\\\\ \` =>

代码语言:javascript
复制

Python中的参考实施;您可以输入任意多行,并且它将使用我的方法为每个行打印一个有效的答案。

标准漏洞和往常一样是不允许的。

这是一个密码-高尔夫挑战,因此每种语言以字节表示的最短代码在其语言类别中获胜。高尔夫快乐!

EN

回答 11

Code Golf用户

发布于 2021-06-22 17:42:15

Pip,6字节

代码语言:javascript
复制
RP``.q

在网上试试!

解释

嗯..。嗯,这很有趣。

就这样,Pip的模式类型(用于regex)是用backticks分隔的。反斜杠可以在一个模式中转义。

..。而且,用于生成模式的Pip 瑞尔的代码显然是不正确,因为它也应该转义反斜杠,但实际上它只是转义反斜杠。这正是这个问题所要求的行为。

“这不是一个bug,它是一个特性”?¯\_(ツ)_/

代码语言:javascript
复制
     q  Read a line of stdin
  ``.   Cast it to a Pattern by concatenating an empty Pattern to it
RP      Get the repr

好吧,我又看了一遍,我觉得这其实不是个窃听器。我之所以认为这是一个bug,是因为一些输入不可能作为模式文本输入。由于它们是“不可能”的模式,因此它们的reprs不能正确地表示模式文字。

代码语言:javascript
复制
Input  Repr    Comment
`      `\``    Properly formed: backtick is escaped with a backslash
\\`    `\\\``  Properly formed: backslash is also escaped with a backslash
\`     `\\``   Improperly formed: first backtick is not escaped

您不能在Pip中输入\`的正则表达式,因为\`不是一个格式正确的正则表达式。(如果您想要一个与字符串\`匹配的正则表达式,则应该使用\\`,它被输入为`\\\``。像泥一样干净?太棒了。

总之,只有偶数长度反斜杠的输入输出格式良好的reprs,但是如果有奇怪的反斜杠运行,则所有的下注都会停止。

票数 26
EN

Code Golf用户

发布于 2021-06-22 17:05:39

Python 3,35字节

代码语言:javascript
复制
lambda s:'`%s`'%s.replace('`','\`')

在网上试试!

-1多亏了野狗。

票数 9
EN

Code Golf用户

发布于 2021-06-22 16:55:43

果冻,11字节

代码语言:javascript
复制
ṣ”`j⁾\`⁾``j

在网上试试!

果冻版的林恩法,独立发现

是如何工作的

代码语言:javascript
复制
ṣ”`j⁾\`⁾``j - Main link. Takes a string S on the left
ṣ”`         - Split S on backtick
   j⁾\`     - Join with "\`", essentially replacing backticks with "\`"
       ⁾``j - Surround with backticks
票数 5
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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