นี่เป็นส่วนหนึ่งของการท้าทายของตำรวจและโจร ไปที่นี่เพื่อเป็นส่วนหนึ่งของพวกโจร
The Cops 'Challenge
Haystack
คุณควรจะเขียนโปรแกรมหรือฟังก์ชั่นในภาษาที่คุณเลือกซึ่งเอาท์พุทสตริง แต่ก็ต้องเป็นไปได้ที่จะเอาชุดย่อยบางส่วนของตัวละครจากโปรแกรมของคุณ (โดยไม่ต้องเรียงลำดับส่วนที่เหลือ) เช่นว่าสตริงส่งผลเป็นยังเป็นโปรแกรมที่ถูกต้องในภาษาเดียวกันซึ่งจะพิมพ์Needle
แทน ทั้งสองโปรแกรม / ฟังก์ชั่นอาจเลือกพิมพ์บรรทัดใหม่ขึ้นบรรทัดเดียว (แยกจากกัน) แต่ไม่มีอะไรอื่น เอาต์พุตต้องคำนึงถึงขนาดตัวพิมพ์และต้องเป็นไปตามปลอกที่ให้มา
แน่นอนว่าเป้าหมายของคุณคือซ่อน "เข็ม" ไว้อย่างดี แต่ทราบว่าส่งของคุณสามารถแตกกับใด ๆวิธีการแก้ปัญหาที่ถูกต้องไม่ได้เป็นเพียงคนที่คุณตั้งใจ
โปรดระบุในคำตอบของคุณ:
- ภาษา (และเวอร์ชันหากเกี่ยวข้อง) ของการส่งของคุณ
- ขนาดของโปรแกรม Haystack ในหน่วยไบต์
- โปรแกรม Haystack นั้นเอง
- วิธีการส่งออกถ้ามันไม่ได้เป็น STDOUT
- หากเป็นไปได้ให้ลิงก์ไปยังล่าม / ผู้แปลออนไลน์สำหรับภาษาที่คุณเลือก
การส่งของคุณอาจเป็นโปรแกรมหรือฟังก์ชั่น แต่ไม่ใช่ตัวอย่างและคุณต้องไม่ถือว่าสภาพแวดล้อม REPL คุณต้องไม่รับอินพุตใด ๆ และคุณสามารถส่งออกผ่านทาง STDOUT, ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ function (out)
ทั้งสองโปรแกรม / ฟังก์ชั่นจะต้องเสร็จสิ้นภายใน 5 วินาทีบนเครื่องเดสก์ท็อปที่เหมาะสมและจำเป็นต้องกำหนดไว้ล่วงหน้า คุณต้องไม่ใช้บิวด์อินสำหรับการแฮชการเข้ารหัสหรือการสร้างหมายเลขสุ่ม
เพื่อประโยชน์แห่งความเป็นธรรมจะต้องมีล่ามหรือผู้แปลอย่างอิสระสำหรับภาษาที่คุณเลือก
คำตอบจะแตกหากพบว่าโปรแกรมเข็ม หากคำตอบของคุณไม่ถูกถอดรหัสเป็นเวลา 7 วันคุณอาจเปิดเผยโปรแกรมเข็มที่ตั้งใจในคำตอบของคุณซึ่งทำให้การส่งของคุณปลอดภัย ตราบใดที่คุณไม่เปิดเผยวิธีแก้ปัญหาของคุณก็อาจถูกโจรปล้นได้แม้ว่าจะผ่านไป 7 วันแล้วก็ตาม โปรแกรม Haystack ที่สั้นที่สุดที่ปลอดภัย (วัดเป็นไบต์) ชนะ
ตัวอย่าง
นี่คือตัวอย่างง่ายๆในภาษาต่างๆ:
Ruby
Haystack: puts 1>0?"Haystack":"Needle"
Delete: XXXXXXXXXXXXXXX
Needle: puts "Needle"
Python 2
Haystack: print "kcatsyaHeldeeN"[-7::-1]
Delete: XXXXXXXX XX
Needle: print "eldeeN"[::-1]
โปรดทราบว่าชุดย่อยของอักขระที่ลบออกไม่จำเป็นต้องต่อเนื่องกัน
ส่งที่ไม่ได้ติดตาม
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 144600;</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>