อินพุต
s
สตริงตัวอักษรและตัวเลข
เอาท์พุต
สตริงที่สั้นที่สุดที่เกิดขึ้นครั้งว่าเป็น (ติดกัน) substring s
ใน การซ้อนทับที่เกิดขึ้นนับว่าแตกต่างกัน หากมีผู้สมัครหลายรายที่มีความยาวเท่ากันคุณจะต้องส่งออกทั้งหมดตามลำดับที่ปรากฏ ในความท้าทายนี้สตริงว่างเกิดขึ้นครั้งในสตริงของความยาวn + 1
n
ตัวอย่าง
พิจารณาสตริง
"asdfasdfd"
สตริงว่างเกิดขึ้น 10 ครั้งดังนั้นจึงไม่ใช่ตัวเลือกสำหรับการเกิดที่ไม่ซ้ำกัน แต่ละตัวอักษร"a"
, "s"
และ"d"
, "f"
เกิดขึ้นอย่างน้อยสองครั้งจึงไม่ได้เป็นผู้สมัคร สตริงย่อย"fa"
และ"fd"
เกิดขึ้นเพียงครั้งเดียวและตามลำดับนี้ในขณะที่สตริงย่อยอื่นที่มีความยาว 2 เกิดขึ้นสองครั้ง ดังนั้นผลลัพธ์ที่ถูกต้องคือ
["fa","fd"]
กฎระเบียบ
อนุญาตให้ใช้ทั้งฟังก์ชั่นและโปรแกรมเต็มรูปแบบและช่องโหว่มาตรฐานไม่ได้ การจัดรูปแบบที่แน่นอนของผลลัพธ์มีความยืดหยุ่นด้วยเหตุผล โดยเฉพาะอย่างยิ่งไม่อนุญาตให้สร้างเอาต์พุตสำหรับสตริงว่างเปล่า แต่การโยนข้อผิดพลาดไม่ใช่ จำนวนไบต์ต่ำสุดชนะ
กรณีทดสอบ
"" -> [""]
"abcaa" -> ["b","c"]
"rererere" -> ["ererer"]
"asdfasdfd" -> ["fa","fd"]
"ffffhhhhfffffhhhhhfffhhh" -> ["hffff","fffff","hhhhh","hfffh"]
"asdfdfasddfdfaddsasadsasadsddsddfdsasdf" -> ["fas","fad","add","fds"]
ลีดเดอร์บอร์ด
นี่คือลีดเดอร์บอร์ดตามภาษาที่ฉันสัญญา
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:
# Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในบรรทัดแรกโดยการตีพวกเขาผ่าน ตัวอย่างเช่น
# Ruby, <s>104</s> <s>101</s> 96 bytes
<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>site = 'meta.codegolf',postID = 5314,isAnswer = true,QUESTION_ID = 45056;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>