反引号


29

挑战的前景是:

  • 如果您的程序正常运行,"则应打印语音标记(-双引号)中的所有代码。
  • 如果您的程序用双引号引起来(反过来反演语音标记),则应打印通常不在引号中的代码。

例如:

假设您有以下代码:

fancyStuff("myCode"); "I like".isGreat();

如果运行它,我期望输出:

myCode
I like

但是,如果将其用引号引起来,则会得到:

"fancyStuff("myCode"); "I like".isGreat();"

运行此代码时,预期输出为:

fancyStuff(
); 
.isGreat();

显然,以上示例不是任何语言的功能响应。您的工作是编写以这种方式执行的代码。

规则

  • 有标准漏洞。
  • 带有引号和未引号形式的打印值必须为非空,或仅由空格组成。这也意味着所有程序都必须至少包含一组引号。
  • 但是,允许尾随/前导空格。
  • 无需查看您自己的代码,所需的文件名等。
  • 不允许使用不匹配的报价
  • 如果有多个字符串,则可以将它们打印为换行符(如示例中所示),也可以以其他人类可读的方式打印-没有数组或对象
  • 这是,因此最短答案以字节为单位。

是否允许使用不匹配的报价?如果允许,应如何处理?
七月

3
@GezaKerecsenyi那么,是否需要使用分隔符,或者我们可以简单地将字符串连接起来吗?
暴民埃里克

9
数组不是人类可读的格式吗?
小麦巫师

4
字符串的输出顺序必须与在代码中出现的顺序相同吗?
毛茸茸的

1
我认为,如果您必须打印引号中未包含的内容,这将稍微复杂一些
Jo King

Answers:


28

Python 2,20个字节

print";print'print'"

-7字节归功于tsh

在线尝试!


旧答案:

Python 2,27个字节

'';print";print 2*"'';print

在线尝试!

这个答案背后的思路:

从简单的打印开始,因为我们需要打印一些东西

print"a"

我们还需要在相反的情况下打印一些东西,即。在引号内打印。

print"print"

在这一点上,同相的情况还不错。让我们关注倒置情况。现在,我们从字符串开始,print不能紧随其后的是一条打印语句。让我们用分号来解决这个问题。

print";print"

好东西。除此以外,倒排代码实际上不会打印任何内容。我们需要print在开始时打印,因为它会以双引号结尾,而且还要打印第二个引号后的所有内容,因为它也会以双引号结尾。解决此问题的明显方法是将print最后一个字符串附加并乘以2。

print";print 2*"print

现在,反向代码可以正常工作,尽管我们必须警惕一个事实,即在以后的更改中,第一引号之前的部分和第二引号之后的部分必须保持相同。至于非反转代码,它会引发语法错误-再次,我们需要引入分号来分隔表达式。

;print";print 2*";print

Python并不太喜欢单独的分号的外观,因此我们必须在第一个分号和最后一个分号之前插入两个相同的no-op表达式来满足对蛇的渴望。大多数表达式在第一种情况下都可以正常工作,但是在第二种情况下,它必须紧跟print";print 2*"非反转代码,且不破坏任何内容。我们可以使用'',它只是与前面的字符串连接在一起。

'';print";print 2*"'';print

5
print(";print('print()');")也是27个字节,并且还Python 3的
TSH

2
@tsh这段代码揭示了一个20字节的Python 2解决方案,在事后看来很明显,非常好!
七月

19

CSS,66个字节

body:after{content:"{}body:after{content:'body:after{content:}'}"}

"body:after{content:"{}body:after{content:'body:after{content:}'}"}"

CSS并不能解决很多问题...


似乎body:after在某些实现上也可行?
Shieru Asakoto

@ShieruAsakoto你是对的。:after出于向后兼容性的原因,大多数浏览器都提供了该功能
tsh

@Shaggy但是,当同时提供HTML和CSS时,很难定义“用引号包裹您的源代码”的工作方式。
tsh

@tsh很好-我没有在规则中指定多个文件,因为我没想到会有如此独特的答案!
Geza Kerecsenyi

10

HQ9 + [请参阅以下说明],1016字节

“你好,世界””””””””””””””””””””””””””””””””””””””””””””””” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” ““““““““““““““““““““““““““““““““““““““你好,世界“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “““““““““““““““““““““““““““““““““““你好,世界“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “““““““““““““““““““““““““““““““““““你好,世界“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” ““““““““““““““““““““““““““““你好,世界“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” ““““““““““““““““““““““““““““你好,世界“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “““““““““““““““你好,世界“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” “““““““““““““““你好,世界“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” ““““““““““““““““““““““““““““““““““““““你好,世界“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” ““““““““““““““““““““““““““““““““““““““你好,世界“““““““““““““““““““““““““““““““““““你好,世界“““““““““““““““““““““““““““““““““““你好,世界

使用https://esolangs.org/w/index.php?title=HQ9%2B&oldid=59995上的实现,并在Windows上使用MinGW GCC 5.3.0编译解释器。我不确定它是否可以与其他版本的编译器一起使用,因为终止程序需要使用未定义的C行为。缓冲区的长度为1000个字节。大于1000字节的源代码可以解决问题。我不知道这些是怎么发生的。


7
也许这是该网站上最长的HQ9 +答案。(?)
tsh

1
“终止程序需要C的未定义行为”未定义行为是未定义:它可以执行任何操作。
所罗门·乌科

根据C18标准的第4页:“可能的不确定行为范围包括完全忽略具有无法预测结果的情况,到在翻译或程序执行过程中以环境特征记录的方式进行操作(带有或不带有诊断消息的行为)。 ),以终止翻译或执行(伴随诊断消息的发布)。”
所罗门·乌科

@SolomonUcko但是我们在此站点上通过其编译器/解释器定义了一种语言。只要至少一个编译器/解释器可以产生正确的结果,答案就很好。
tsh

9

05AB1E,4 个字节

"A"§

输出串联,不带分隔符。

在线尝试使用带引号的在线尝试

说明:

        # Program without surrounding quotes will output string "A"
"A"     # Push "A" to the stack
   §    # Cast it to a string
        # (output the top of the stack implicitly as result)

        # Program with surrounding quotes will output string "§"
""      # Push an empty string to the stack
  A     # Push the alphabet to the stack: "abcdefghijklmnopqrstuvwxyz"
   "§"  # Push "§" to the stack
        # (output the top of the stack implicitly as result)

不幸的是,这违反了规则2。虽然在代码中可以包含一些空引号是可以的,但必须至少有一个非空的引号,包括包围形式和非包围形式。
Geza Kerecsenyi

@GezaKerecsenyi糟糕,请阅读“ 引用和未引用两种形式 ”部分。现在应该修复。
凯文·克鲁伊森

6

Japt,4个字节

"P"s

尝试不加引号引号

P是用于空字符串的Japt变量,并且该s方法对字符串进行切片-不带任何参数,则不执行任何操作。


或者,那么微不足道:

"+"u

尝试不加引号引号

第一个大写+,第二个追加u到一个空字符串。


3
请注意,此问题的最低分数为4,因为任何分数都违反了限制。
乔·金

5

C#(Visual C#交互式编译器)113 112 107 70 64个字节

Write(".f();static void f(this string s){Write(s+')'+';');}//");

@负七,节省了5个字节

加引号引用

一段时间后,我意识到我的解决方案太复杂了。此处显示的最新程序只是将程序的其余部分隐藏在注释中,以免在用引号引起来时出错。

当用引号引起来时,Write(将传递给扩展方法,该方法将其与);


Split()-> Trim()var a->_
负7

1
@negativeseven谢谢,我从没想过要使用废弃!
无知的体现

1
@negativeseven实际上,我的解决方案甚至不需要这么复杂,请看一下我的最新编辑
无知的体现

使用扩展方法的64个字节。非常惊讶,效果如此出色!
7

1
@negativeseven谢谢!而你给了我一个想法的挑战两部分:我是捕捉一个变量外,然后使用RemoveInsert就可以了,现在我可以只使用一个扩展方法!
无知的体现


4

Foo,4个字节

"P"s

在线尝试! 也可在Japt中使用。

5个字节(UTF-8)

"A"§

在线尝试! 也适用于05AB1E。

9字节

"!""$;"$;

在线尝试! 也适用于符文附魔。

11字节

say ".say~"

在线尝试! 在Perl 6中也可以使用。

20字节

print";print'print'"

在线尝试! 也适用于Python 2。

69个字节

body::after{content:"{}body::after{content:'body::after{content:}'}"}

在线尝试! 也可以在CSS中使用。

嗯... Foo是一种高度适应的语言。


嗯……Foo是一种高度适应性的语言。 ”对于不了解Foo的任何人:输出双引号内的所有内容,而其他所有内容(除其他一些内置字符之外)均为无操作。“ 完美的工作语言 ”在这里被轻描淡写了。;)
Kevin Cruijssen

2
因此,从根本上说,只是剥离所有其他解决方案来应对这一挑战吗?!
长毛

@Shaggy语言是Foo。在这个挑战中,几乎所有带有至少一对引号且两个预期输出非空的东西都可以在Foo中使用。所以"a"b 1"2"在Foo中也适用。到目前为止,这个挑战中唯一的不是Foo多语言的答案是HQ9 +,因为Foo解释器也存在溢出问题。
jimmy23013

4

> <>18 9字节

"|o<"r>o|

-9个字节,感谢Jo King

在线尝试!引用

说明

"|o<"r>o|
"|o<"     Pushes the quoted characters onto the stack
     r    Reverses the stack
      >o| Outputs all characters on stack & errors
""|o<"r>o|"
""          No-op
  |         Reverses the IP direction
     "r>o|" Pushes the quoted characters onto the stack (backwards)
  |o<       Outputs all characters on stack & errors

5
欢迎来到Code Golf!
Stephen

@Stephen谢谢!
tjjfvi


2

符文附魔,9字节

"!""$;"$;

在线尝试!""!""$;"$;"

来自凯文·克鲁伊森(Kevin Cruijssen),他基本上利用第二次尝试所做的工作来修复我的第一次尝试。

顺着“真菌永远不会有无与伦比的引号”规则弯曲,“关于此事有些不对劲”路线,在我自己的评论中提到:

7字节

0".""$;

在线尝试!"0".""$;"

在正常情况下,该程序执行时会0".""$;0".""$;推送一个整数0,然后字符串.,concatenates $;0,NOP,串联一个空字符串,打印堆栈顶部(string .$;0)并终止。将其包装在引号中会产生结果"0".""$;",从而压入字符串- 0,NOP,连接空字符串,打印栈顶并终止(0以字符串形式呈现以前未打印的整数)。最后一个"未执行(不是原始文件的一部分)无论如何程序的)。

真菌没有字符串文字,它们有一个命令来切换“以字符串形式读取自己的源代码”模式和某种形式的“指令指针已到达源代码边界”规则(通常是自动换行),因此源代码相同-positional-byte充当“开始字符串”和“结束字符串”指令,创建整个行/列(不包括其"自身)的字符串文字。


超级快速的答案!我只是想知道我是否误解了您提交的内容,但对我而言,它并没有$;在引用版本的末尾打印出来。
Geza Kerecsenyi

我意识到,在重新阅读后,我想弄清楚符文是否可以执行。现在开始调查“未配对”报价;例如"$;""$;"(符文环绕引号与它们自己配对)。
Draco18s

@GezaKerecsenyi让我知道我的更新程序是否违反任何规则。
Draco18s

嗯..这有效吗?您的程序没有引号输出!.(正确),但是您的程序不应该带引号输出0$;吗?PS:我不知道在所有的符文附魔,但根据当前布局的可能的解决方法,我认为是有效的。将0"!""$;"$;(其中输出!$;的是,或者输出0$;是否与引号括起来)。编辑:实际上,我认为您可以删除0和输出!$;以及$;
凯文·克鲁伊森

1
@KevinCruijssen $是“堆栈顶部”,并且;终止。但是您基本上得到了一个有效的答案。
6







0

AppleScript,9个字节

return"&"

解释:

return"&"    -- returns "&"

引:

"return"&""  -- implied return of the string "return" concatenated with ""
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.