ท้าทาย:
รับจำนวนเต็มบวกเอาท์พุทการเรียงลำดับเลขหลักเดียวที่ยาวที่สุดที่เกิดขึ้นอย่างน้อยสองครั้งและมีขอบเขตของตัวเลขอื่น (หรือจุดเริ่มต้น / สิ้นสุดของจำนวนเต็ม)
ตัวอย่าง:
อินพุต: 7888885466662716666
การเรียงลำดับที่ยาวที่สุดของหลักเดียวคือ88888
( 7[88888]5466662716666
) ที่มีความยาว 5 อย่างไรก็ตามการเรียงลำดับนี้จะเกิดขึ้นเพียงครั้งเดียวในจำนวนเต็ม
แต่ผลลัพธ์ของอินพุต7888885466662716666
ควรเป็น6666
( 78888854[6666]271[6666]
) เนื่องจากเกิดขึ้น (อย่างน้อย) สองครั้ง
กฏท้าทาย:
- ความยาวขององค์ประกอบจะมีความสำคัญมากกว่าจำนวนครั้งที่มันเกิดขึ้น (เช่นมีอินพุต
8888858888866656665666
เราเอาต์พุต88888
([88888]5[88888]66656665666
; ความยาว 5 เกิดขึ้นสองครั้ง) และไม่ใช่666
(88888588888[666]5[666]5[666]
; ความยาว 3 เกิดขึ้นสามครั้ง) - หากความยาวของหลายองค์ประกอบเท่ากันเราจะแสดงผลลัพธ์ที่มีการนับเหตุการณ์มากที่สุด เช่นกับอินพุท
3331113331119111
เราเอาท์พุท111
(333[111]333[111]9[111]
; ความยาว 3, เกิดขึ้นสามครั้ง), และไม่ใช่333
([333]111[333]1119111
; ความยาว 3 ด้วย, แต่เกิดขึ้นสองครั้ง) - หากจำนวนการเกิดและความยาวของหลายองค์ประกอบเท่ากันคุณสามารถส่งออกอย่างใดอย่างหนึ่งของพวกเขาหรือทั้งหมด (ในลำดับใด ๆ ) เช่นอินพุต
777333777333
, เอาต์พุตที่เป็นไปได้คือ:777
;333
;[777, 333]
;[333, 777]
หรือ - ลำดับจะต้องมีขอบเขตของตัวเลขอื่น ๆ (หรือจุดเริ่มต้น / สิ้นสุดของจำนวนเต็ม) นั่นคือการป้อนข้อมูล
122222233433
ผลลัพธ์คือ33
(1222222[33]4[33]
; ความยาว 2, เกิดขึ้นสองครั้ง) และไม่ใช่222
(1[222][222]33433
, ความยาว 3, เกิดขึ้นสองครั้งโดยที่ไม่ถูกต้องทั้งคู่)- สิ่งนี้ใช้กับตัวเลขทั้งหมดที่นับรวมกับตัวนับเหตุการณ์ นั่นคือการป้อนข้อมูล
811774177781382
ผลลัพธ์คือ8
([8]117741777[8]13[8]2
; ความยาว 1, เกิดขึ้นสามครั้ง) และไม่ใช่77
(811[77]41[77]781382
/811[77]417[77]81382
; ความยาว 2, เกิดขึ้นสองครั้งด้วยหนึ่งครั้งไม่ถูกต้อง) หรือ1
(8[1][1]774[1]7778[1]382
; ความยาว 1, เกิดขึ้นสี่ครั้งโดยมีสองครั้งไม่ถูกต้อง)
- สิ่งนี้ใช้กับตัวเลขทั้งหมดที่นับรวมกับตัวนับเหตุการณ์ นั่นคือการป้อนข้อมูล
- คุณสามารถสมมติว่าการป้อนข้อมูลจะไม่มีตัวเลขใด ๆ
0
(มันจะตรงกับ[1-9]+
) (นี่คือเพื่อหลีกเลี่ยงการจัดการกับกรณีทดสอบเช่น10002000
ที่ควรส่งออก000
ซึ่งภาษาส่วนใหญ่จะส่งออก0
โดยค่าเริ่มต้น) - คุณสามารถสมมติว่าอินพุตจะมีเอาต์พุตที่ถูกต้องอย่างน้อยหนึ่งรายการเสมอ
- I / O มีความยืดหยุ่น สามารถเป็นรายการ / อาร์เรย์ / สตรีมของตัวเลข / ไบต์ / ตัวอักษรหรือเป็นสตริงแทนที่จะเป็นจำนวนเต็มเดียว
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีการที่มีพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้ขอแนะนำให้เพิ่มคำอธิบายสำหรับคำตอบของคุณ
กรณีทดสอบ:
Input: 7888885466662716666 / [7,8,8,8,8,8,5,4,6,6,6,6,2,7,1,6,6,6,6]
Output: 6666 / [6,6,6,6]
Input: 3331113331119111 / [3,3,3,1,1,1,3,3,3,1,1,1,9,1,1,1]
Output: 111 / [1,1,1]
Input: 777333777333 / [7,7,7,3,3,3,7,7,7,3,3,3]
Possible outputs: 777; 333; [777,333]; [333;777] / [7,7,7]; [3,3,3]; [[7,7,7],[3,3,3]]; [[3,3,3],[7,7,7]]
Input: 122222233433 / [1,2,2,2,2,2,2,3,3,4,3,3]
Output: 33 / [3,3]
Input: 811774177781382 / [8,1,1,7,7,4,1,7,7,7,8,1,3,8,2]
Output: 8 / [8]
Input: 555153333551 / [5,5,5,1,5,3,3,3,3,5,5,1]
Output: 1 / [1]
Input: 12321 / [1,2,3,2,1]
Possible outputs: 1; 2; [1,2]; [2,1] / [1]; [2]; [[1],[2]]; [[2],[1]]
Input: 944949949494999494 / [9,4,4,9,4,9,9,4,9,4,9,4,9,9,9,4,9,4]
Output: 4 / [4]
Input: 8888858888866656665666 / [8,8,8,8,8,5,8,8,8,8,8,6,6,6,5,6,6,6,5,6,6,6]
Output: 88888 / [8,8,8,8,8]
Input: 1112221112221111 / [1,1,1,2,2,2,1,1,1,2,2,2,1,1,1,1]
Output: 111; 222; [111,222]; [222,111] / [1,1,1]; [2,2,2]; [[1,1,1],[2,2,2]]; [[2,2,2],[1,1,1]]
Input: 911133111339339339339339 / [9,1,1,1,3,3,1,1,1,3,3,9,3,3,9,3,3,9,3,3,9,3,3,9]
Output: 111 / [1,1,1]
222
เมื่อถูก จำกัด ด้วยจำนวนเต็มอื่น ๆ 1111
ผมคิดว่าเราก็ไม่ควรนับการเกิดที่เป็นย่อยของ ดีกว่ารอ OP แม้ว่าแน่นอน
1112221112221111
เหล่านี้เป็น subsequences 1111 (1)
และจำนวนของพวกเขา111 (2)
, 222 (2)
, เนื่องจากเราเพียง 111
แต่เอาท์พุทลำดับที่เกิดขึ้นอย่างน้อยสองครั้งที่ส่งออกสามารถเป็นหนึ่งใน: 222
, [111,222]
, [222,111]
, (ดูกฎสี่สำหรับข้อมูลเพิ่มเติม.) โดยทั่วไป1111
เท่านั้นที่เคยจะนับเป็น1111
และไม่เป็น1
และ111
หรือและ11
11
ฉันจะเพิ่มกรณีทดสอบของคุณ แต่ส่งออกเป็นอย่างใดอย่างหนึ่งหรือทั้งสองและ111
222
8888858888866656665666
กรณีทดสอบที่แนะนำ: หากฉันตีความความท้าทายอย่างถูกต้องทั้งโซลูชั่น Brachylog และ 05AB1E ล้มเหลว