您的任务是创建一个程序,在该程序中,如果删除了任何一个字符,它将检测到删除了哪个字符,然后将删除的字符重新插入其自己的源文件中。
例如,如果您的程序已RadiationHardened
被修改为RadiaionHardened
,则您的程序必须输出第5个字节(索引为0)已被修改,然后程序源必须RadiationHardened
在执行后立即执行。
注释和规则
- 您可以假设执行前在源代码中删除了一个字符。未修改程序的行为是不确定的。
- 您可以假定更改后的字节将被删除,不转置,插入或替换。
- 如果有多个相同字符的运行,则可以报告运行的第一个或最后一个索引,但要使用的一致。例如,
baaad
被删除baad
可以报告1或3(零索引),但是在整个程序中必须相同。 - 您无需将整个源写到其自己的文件中。您只需要重新插入已删除的字节。
- 与典型的辐射硬化Quines规则不同,通过读取程序自身的源代码来检测更改的字节是公平的。
- 您可以通过任何合理的格式输出更改后的字节索引。关于它是0索引还是1索引或任何其他符号,请保持一致。您甚至可以在模板字符串中输出数字。
这是代码高尔夫球,因此最短的程序为准。
祝好运!
EDIT1:将要求从替换更改为删除
EDIT2:为重复运行添加了规则
这可能会变成
—
Arnauld
code-challenge
允许每个程序声明防辐射字节列表(但不超过总大小的50%)。一个简单的评分系统可以将每个受辐射保护的字节计为10字节,或类似的数字。
(但这可能会带来一些琐碎且不太有趣的答案。)
—
Arnauld
@JoKing,如果一致,则报告为丢失都可以。
—
Beefster '19
“您可能需要将文件命名为特定名称并从特定目录运行”-注意,有人可以只要求文件名是正确的程序...
—
仅ASCII
*
@