首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除引号下稳定的最短字符串表达式

删除引号下稳定的最短字符串表达式
EN

Code Golf用户
提问于 2014-01-09 17:01:04
回答 11查看 799关注 0票数 5

忘记引号会导致某些问题。例如,在Scala中,两个表达式:

代码语言:javascript
运行
复制
"("+("+")+(")+(")+")"
 ("+("+")+(")+(")+")

只有开头和结尾的引号不同,但它们分别产生了结果:

代码语言:javascript
运行
复制
(+)+()
+()+()+

但是scala中的这个表达式几乎具有所需的属性:

代码语言:javascript
运行
复制
def m="+m+"
""+m+""

您的任务是编写包含引号的最短表达式,这样如果删除外部引号,表达式仍然返回相同的字符串。

要点:

  • 你的语言必须支持“.”作为字符串文本
  • 程序必须至少包含三个字符。
  • 不允许在引号本身之外定义上下文(就像我对m所做的那样)。
  • 不允许对字符串使用其他分隔符,例如不使用""",不使用'
  • 这两个表达式都应该返回字符串。
  • 最短代码获胜(计算引号本身)
EN

回答 11

Code Golf用户

回答已采纳

发布于 2014-01-09 19:39:05

Befunge 98 - 3,4,6,17

在这些程序中,我假设您只想得到一个字符串,但是您并不关心程序是否终止。换句话说,您需要一个可以放置在代码中的代码片段。(注:在Befunge中,堆栈上的任何内容都是字符串。它也是一个数字)

此代码段必须放在第一行的第一部分。

代码语言:javascript
运行
复制
"g"

当移除引号时,g的行为类似于00g,因此它推送了一个g。不管是哪种方式,它都会推动一个g

代码语言:javascript
运行
复制
""""

在Befunge 93号作品中也是如此,它总是一事无成。

这个更有趣

代码语言:javascript
运行
复制
""z"z"

它总是推动zz是没有操作的,所以尽管IP执行命令,它什么也不做(我本可以使用,但是z更有趣)。

这个只有一组",并且类似于quine:

代码语言:javascript
运行
复制
">:0g\1+:f`1+jb<"

它总是推送字符串的内容,但是当移除引号时,它会以类似quine的方式进行。这必须放在第一行的第一部分,但可以作出调整,将其放在其他地方。

票数 2
EN

Code Golf用户

发布于 2014-01-09 17:55:30

C (4个字符)

表达

代码语言:javascript
运行
复制
""""

满足三个字符的最小要求。它对空字符串进行编码,即使省略了一个级别的引号:

代码语言:javascript
运行
复制
 ""

如果希望得到的字符串至少为三个字符,下面是一个长度为10的表达式,它将产生三个字符串字符,即三个空格:

代码语言:javascript
运行
复制
""   "   "
 "   "   

如果您也不喜欢空格,下面是长度为12的表达式中的四个可打印字符:

代码语言:javascript
运行
复制
""/**/"/**/"
 "/**/"/**/

将这些表达式放入一个小程序中:

代码语言:javascript
运行
复制
#include <stdio.h>
#define CASE(s) printf("'%s'\n", s)
int main() {
  CASE("""");
  CASE("");
  CASE(""   "   ");
  CASE("   "   );
  CASE(""/**/"/**/");
  CASE("/**/"/**/);
}

输出:

代码语言:javascript
运行
复制
''
''
'   '
'   '
'/**/'
'/**/'
票数 14
EN

Code Golf用户

发布于 2014-01-09 19:22:32

Shell (3个字符)

代码语言:javascript
运行
复制
"w"
w

两者都执行命令w

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

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

复制
相关文章

相似问题

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