พิจารณาอาร์เรย์ของจำนวนเต็ม:
[1, 0, 9, 1, 3, 8]
มีหลายวิธีในการแบ่งรายการนี้เป็นรายการย่อยที่ต่อเนื่องกัน ที่นี่มีสาม:
A: [[1, 0, 9], [1, 3, 8]]
B: [[1], [0, 9], [1, 3], [8]]
C: [[1, 0], [9, 1], [3, 8]]
เราจะเรียกพาร์ติชั่นYและการปรับแต่งพาร์ติชั่นXอีกอันถ้าXสามารถหาได้จากYโดยการรวมกลุ่มย่อยของมันเข้าด้วยกัน
ดังนั้นB
เป็นการปรับแต่งของA
: A
ถ้าเราเข้าร่วมครั้งแรกที่สองและทั้งสองรายการย่อยสุดท้ายกลับมารวมกันเราได้รับ แต่C
เป็นไม่ได้ปรับแต่งของA
เราจะต้องแยกขึ้น9
และ1
เพื่อที่จะกู้คืนA
จากมัน นอกจากนี้พาร์ติชันใด ๆ ก็มีการปรับแต่งเล็กน้อย
โปรดทราบว่าเราไม่ได้รับอนุญาตให้จัดเรียงรายการย่อยหรือองค์ประกอบใหม่อีกครั้ง
ความท้าทาย
ป.ร. ให้ไว้สองพาร์ทิชัน (รายชื่อของรายการของจำนวนเต็ม) X
และY
ตรวจสอบว่าเป็นการปรับแต่งของY
X
คุณอาจคิดว่าพาร์ติชั่นจะมีจำนวนเต็มตั้งแต่0
ถึง9
รวม คุณต้องไม่สมมติX
และY
เป็นพาร์ทิชันของรายการเดียวกัน (ถ้าไม่ใช่พวกเขาจะไม่ปรับแต่งซึ่งกันและกัน) X
และ / หรือY
อาจว่างเปล่า แต่จะไม่มีรายการย่อยที่ว่างเปล่า
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์
อินพุตอาจถูกใช้ในรูปแบบสตริงหรือรายการที่สะดวก เนื่องจากองค์ประกอบจะเป็นเลขจำนวนเต็มหลักเดียวเท่านั้นคุณอาจเลือกที่จะไม่ใส่ตัวคั่นภายในรายการย่อย แต่ให้แน่ใจว่านำหน้า0
นั้นเป็นไปได้ คุณอาจเลือกที่จะใช้X
และY
ในลำดับที่ตรงกันข้าม
ผลลัพธ์ควรเป็นจริงหากY
มีการปรับแต่งX
และเป็นเท็จอย่างอื่น
รหัสของคุณจะต้องสามารถแก้ไขกรณีทดสอบด้านล่างใน 1 วินาทีบนเครื่องเดสก์ท็อปที่เหมาะสม (นี่เป็นเพียงการตรวจสอบสติเพื่อหลีกเลี่ยงการแก้ปัญหากำลังง่าย ๆ )
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ
กรณีทดสอบ
X Y
กรณีทดสอบแต่ละคนอยู่บนเส้นของตัวเองเขียนเป็น ฉันใช้สัญลักษณ์อาร์เรย์ GolfScript / CJam เพื่อประหยัดพื้นที่แนวนอน:
Truthy:
[] []
[[0]] [[0]]
[[1 0 9 1 3 8]] [[1 0 9] [1 3 8]]
[[1 0 9 1 3 8]] [[1 0 9 1 3] [8]]
[[1 0 9 1 3 8]] [[1] [0] [9] [1] [3] [8]]
[[1 0 9] [1 3 8]] [[1 0 9] [1 3 8]]
[[1 0 9] [1 3 8]] [[1] [0 9] [1 3] [8]]
[[9 8 8 5 8 2 7] [5] [1 4] [2 0 0 6 0 8 4 2 6 4 2 3 7 8 7 3 9 5 7 9 8 2 9 5] [3 9 8] [7 1 4 9 7 4 5 9] [3 3 3] [9 0 7 8] [3 9 4 7 2 7 8 0 3 0] [8 2 2 7 3 9 3 2] [2 9 0 8 5 4 1 8 5 5 6 2 0 9 2 7 7 9 2 7] [3 6] [1 2 7 7 4 4 2 9]] [[9 8] [8] [5 8 2] [7] [5] [1 4] [2] [0 0 6] [0] [8 4 2] [6 4] [2] [3] [7 8] [7 3] [9] [5 7 9] [8 2] [9 5] [3] [9 8] [7 1 4] [9 7] [4 5 9] [3 3] [3] [9 0] [7 8] [3] [9] [4] [7 2] [7 8] [0] [3 0] [8 2] [2] [7 3] [9 3] [2] [2] [9] [0] [8 5 4] [1 8] [5 5] [6] [2 0] [9] [2] [7 7 9] [2 7] [3 6] [1 2] [7 7] [4 4 2] [9]]
Falsy:
[[0]] []
[[0]] [[1]]
[[1 0 9]] [[1 0 9] [1 3 8]]
[[1 0 9] [1 3 8]] [[1 0 9 1 3 8]]
[[1 0 9] [1 3 8]] [[1 0 9]]
[[1 0 9] [1 3 8]] [[1 0] [9]]
[[1 0 9] [1 3 8]] [[1 0] [9 1] [3 8]]
[[1] [0 9] [1 3] [8]] [[1 0 9] [1 3 8]]
[[9 8 8 5 8 2 7] [5] [1 4] [2 0 0 6 0 8 4 2 6 4 2 3 7 8 7 3 9 5 7 9 8 2 9 5] [3 9 8] [7 1 4 9 7 4 5 9] [3 3 3] [9 0 7 8] [3 9 4 7 2 7 8 0 3 0] [8 2 2 7 3 9 3 2] [2 9 0 8 5 4 1 8 5 5 6 2 0 9 2 7 7 9 2 7] [3 6] [1 2 7 7 4 4 2 9]] [[9 8] [8] [5 8 2] [7] [5 1] [4] [2] [0 0 6] [0] [8 4 2] [6 4] [2] [3] [7 8] [7 3] [9] [5 7 9] [8 2] [9 5] [3] [9 8] [7 1 4] [9 7] [4 5 9] [3 3] [3] [9 0] [7 8] [3] [9] [4] [7 2] [7 8] [0] [3 0] [8 2] [2] [7 3] [9 3] [2] [2] [9] [0] [8 5 4] [1 8] [5 5] [6] [2 0] [9] [2] [7 7 9] [2 7] [3 6] [1 2] [7 7] [4 4 2] [9]]
ลีดเดอร์
นี่คือตัวอย่างข้อมูลเพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:
# Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น
# Ruby, <s>104</s> <s>101</s> 96 bytes
<script>site = 'meta.codegolf'; postID = 5314; isAnswer = true; QUESTION_ID = 51719</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>
[[[1 0 9] [1 3 8]] [[1] [0 9] [1 3] [8]]]
หรือ[["109" "138"] ["1" "09" "13" "8"]]
จะเป็นรูปแบบการป้อนยอมรับ?