///打高尔夫球的技巧


12

您在///打高尔夫球有哪些一般技巧?我正在寻找可以应用于代码高尔夫球问题的想法,并且这些想法至少也特定于///(例如,“删除不必要的空格”不是答案)。itflabtijtslwiLines的提示是主题,并且在这里也有效。

请为每个答案发布一个提示。

Answers:


5

使用//作为替代

当您定义一堆替换时,例如:

/a/b//c/d//e/f//g/h//i/j//k/l//m/n//o/p//q/r//s/t//u/v//w/x//y/z/

(65个字节)。您可以//用作替代品:

/~/\/\///a/b~c/d~e/f~g/h~i/j~k/l~m/n~o/p~q/r~s/t~u/v~w/x~y/z/

(61个字节)。


4

不完整///不会打印

请注意,这行代码

/Stack/Overflow//x/\//Stack/ignore/DoItyignore

仅打印Overflow- /ignore从此以后的部分不包括在输出中,因为///仅打印第三个斜杠部分中的内容。

在线尝试不完整的块!

但是,替换器仍在考虑它:如果我们在其中插入斜线,情况会发生变化:

/Stack/Overflow//x/\//Stack/ignore/doitxignore

在线尝试!

输出为Overflowdoit,因为将其替换x/有效语法。


4

在扩展基础并打印中间结果时,请将先前的迭代合并到将来的迭代中

这听起来有点令人费解。我的意思最好用实际答案来描述。此挑战需要以下特定输出:

Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.

一种幼稚的解决方案可能是:

/1/Steve Ballmer still does not know//2/ what he did//3/ wrong//4/ with mobile./1.
12.
123.
1234

注意,此时的格局112123...重复?好吧,不是在执行此操作时:

/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong//4/3 with mobile/1.
2.
3.
4.

再次感谢Martin Ender指出这一点!


2

在代码末尾使用字符来处理边缘情况

如果您有一段///代码可以处理除一种情况以外的所有情况,那么您可以在代码的边缘使用一个字符来处理这种情况。

示例:一进制将两个数字加在一起,除非第二个数字为7,在这种情况下,只需输出第一个数字。

处理除“第二个数字是7”以外的所有情况的代码:

/+//<INPUT 1>+<INPUT 2>

通过*在代码末尾添加a ,我们可以通过+0000000*不做任何替换来处理边缘情况(有必要添加to +以确保数字不大于7)。确保在输入之前在末尾包含代码以进行清理。

/+0000000*///+///*//<INPUT 1>+<INPUT 2>*

在线尝试!

对于“现实世界”示例,我对一些“吉米”问题使用了这个技巧:

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.