为了解决这一挑战,我们将空白定义为仅换行(0x0A)和空格(0x20)。请注意,大多数语言和正则表达式都将许多其他字符也视为空格,无论是在ASCII范围内还是在ASCII范围之外,因此您可能无法使用相应的内置函数。
警察的挑战
您应该使用自己选择的语言编写程序或函数,该程序或函数采用由ASCII(NUL除外)字符组成的字符串作为输入,并输出删除了所有空白的字符串。例如,如果您收到以下输入:
H e l l o,
W o r l d!
你应该输出
Hello,World!
然后,您提交的内容将是您的源代码,其中所有空格都将被删除(与将解决方案作为输入传递给自己的过程相同,尽管您的解决方案也可能包含ASCII范围之外的字符)。您的目标是尽可能地找出需要插入空白的位置,以便以您选择的语言恢复有效的解决方案。请注意,强盗插入的空格可能少于您删除的空格,但不会更多。还要记住,强盗不必匹配您的确切代码,他们只需要找到任何有效的解决方案即可。
您的答案应包含以下内容:
- 解决方案的编写语言(如有必要,还提供版本)。
- 删除空格之前,解决方案的字节数。
- 删除空格的解决方案。
您的解决方案可以是程序或函数,但不能是代码段,并且您不得使用REPL环境。您可以通过STDIN,命令行参数或函数参数进行输入,并通过STDOUT,函数返回值或函数(输出)参数进行输出。
为了公平起见,必须为您选择的语言提供免费的解释器或编译器。
您不得使用内置函数进行散列,加密或随机数生成(即使您将随机数生成器植入固定值)。您的解决方案必须能够在合理的台式机上在10秒内处理100个字符以内的字符串。
如果您的答案在7天(168小时)内没有被破解,则可以透露自己的解决方案,此时您的答案被认为是安全的。只要您不公开解决方案,即使7天已经过去,它也可能会被强盗破解。最短的安全答案将获胜(在删除空格之前进行测量)。
如果您的答案确实不完整,请在答案的标题中指出,并提供指向相应强盗答案的链接。
去这里抢劫犯的一部分。
完整的提交
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 103182;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>