忘记引号会导致某些问题。例如,在Scala中,两个表达式:
"("+("+")+(")+(")+")"
("+("+")+(")+(")+")只有开头和结尾的引号不同,但它们分别产生了结果:
(+)+()
+()+()+但是scala中的这个表达式几乎具有所需的属性:
def m="+m+"
""+m+""您的任务是编写包含引号的最短表达式,这样如果删除外部引号,表达式仍然返回相同的字符串。
要点:
""",不使用'。发布于 2014-01-09 19:39:05
在这些程序中,我假设您只想得到一个字符串,但是您并不关心程序是否终止。换句话说,您需要一个可以放置在代码中的代码片段。(注:在Befunge中,堆栈上的任何内容都是字符串。它也是一个数字)
此代码段必须放在第一行的第一部分。
"g"当移除引号时,g的行为类似于00g,因此它推送了一个g。不管是哪种方式,它都会推动一个g。
""""在Befunge 93号作品中也是如此,它总是一事无成。
这个更有趣
""z"z"它总是推动z。z是没有操作的,所以尽管IP执行命令,它什么也不做(我本可以使用,但是z更有趣)。
这个只有一组",并且类似于quine:
">:0g\1+:f`1+jb<"它总是推送字符串的内容,但是当移除引号时,它会以类似quine的方式进行。这必须放在第一行的第一部分,但可以作出调整,将其放在其他地方。
发布于 2014-01-09 17:55:30
表达
""""满足三个字符的最小要求。它对空字符串进行编码,即使省略了一个级别的引号:
""如果希望得到的字符串至少为三个字符,下面是一个长度为10的表达式,它将产生三个字符串字符,即三个空格:
"" " "
" " 如果您也不喜欢空格,下面是长度为12的表达式中的四个可打印字符:
""/**/"/**/"
"/**/"/**/将这些表达式放入一个小程序中:
#include <stdio.h>
#define CASE(s) printf("'%s'\n", s)
int main() {
CASE("""");
CASE("");
CASE("" " ");
CASE(" " );
CASE(""/**/"/**/");
CASE("/**/"/**/);
}输出:
''
''
' '
' '
'/**/'
'/**/'发布于 2014-01-09 19:22:32
"w"
w两者都执行命令w。
https://codegolf.stackexchange.com/questions/18087
复制相似问题