Thử thách:
Cho một số nguyên dương, xuất ra chuỗi con số đơn dài nhất xảy ra ít nhất hai lần và AND có ranh giới của một chữ số khác (hoặc bắt đầu / kết thúc của số nguyên).
Một ví dụ:
Đầu vào: 7888885466662716666
Chuỗi con dài nhất của một chữ số sẽ là 88888
( 7[88888]5466662716666
) với độ dài 5. Tuy nhiên, chuỗi con này chỉ xảy ra một lần trong số nguyên.
Thay vào đó, kết quả cho đầu vào 7888885466662716666
phải là 6666
( 78888854[6666]271[6666]
), vì nó xảy ra (ít nhất) hai lần.
Quy tắc thử thách:
- Độ dài của các chuỗi con được ưu tiên hơn số lần xảy ra. (Tức là với đầu vào
8888858888866656665666
, chúng ta xuất ra88888
([88888]5[88888]66656665666
; chiều dài 5, xảy ra hai lần) và không666
(88888588888[666]5[666]5[666]
; chiều dài 3, xảy ra ba lần). - Nếu độ dài của nhiều chuỗi bằng nhau, chúng ta xuất ra một chuỗi có số lần xuất hiện lớn nhất. Tức là với đầu vào
3331113331119111
, chúng ta đầu ra111
(333[111]333[111]9[111]
; chiều dài 3, xảy ra ba lần), và không333
([333]111[333]1119111
; chiều dài 3 là tốt, nhưng xảy ra hai lần) - Nếu số lần xuất hiện và độ dài của nhiều chuỗi bằng nhau, bạn có thể xuất một trong hai hoặc tất cả (theo bất kỳ thứ tự nào). Tức là với đầu vào
777333777333
, các đầu ra có thể là :777
;333
;[777, 333]
; hoặc[333, 777]
. - Phần tiếp theo phải có ranh giới của các chữ số khác (hoặc bắt đầu / kết thúc số nguyên). Tức là với đầu vào
122222233433
kết quả là33
(1222222[33]4[33]
; chiều dài 2, xảy ra hai lần) và không222
(1[222][222]33433
, độ dài 3, xảy ra hai lần với cả hai không hợp lệ).- Điều này áp dụng cho tất cả các số được tính vào bộ đếm xảy ra. Tức là với đầu vào
811774177781382
kết quả là8
([8]117741777[8]13[8]2
; chiều dài 1, xảy ra ba lần) và không77
(811[77]41[77]781382
/811[77]417[77]81382
; chiều dài 2, xảy ra hai lần với một không hợp lệ) cũng không1
(8[1][1]774[1]7778[1]382
; độ dài 1, xảy ra bốn lần với hai không hợp lệ).
- Điều này áp dụng cho tất cả các số được tính vào bộ đếm xảy ra. Tức là với đầu vào
- Bạn có thể giả sử đầu vào sẽ không chứa bất kỳ chữ số nào
0
(nó sẽ khớp[1-9]+
). (Điều này là để tránh phải xử lý các trường hợp thử nghiệm như thế10002000
nên xuất ra000
, trong đó hầu hết các ngôn ngữ sẽ xuất0
theo mặc định.) - Bạn có thể giả sử đầu vào sẽ luôn chứa ít nhất một đầu ra hợp lệ.
- I / O đều linh hoạt. Có thể là một danh sách / mảng / luồng chữ số / byte / ký tự hoặc dưới dạng chuỗi thay vì một số nguyên.
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, các chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, thêm một lời giải thích cho câu trả lời của bạn rất được khuyến khích.
Các trường hợp thử nghiệm:
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
khi bị ràng buộc bởi các số nguyên khác. Tôi đoán chúng ta không nên tính sự xuất hiện của một chuỗi con 1111
. Thực sự tốt hơn là chờ đợi OP.
1112221112221111
đó là những subsequences và đếm của họ: 1111 (1)
, 111 (2)
, 222 (2)
. Kể từ khi chúng tôi chỉ kết quả đầu ra trình tự xảy ra ít nhất hai lần, sản lượng có thể là một trong: 111
, 222
, [111,222]
, [222,111]
. (Xem quy tắc thứ tư đối với một số thông tin hơn.) Về cơ bản 1111
chỉ bao giờ sẽ được tính là 1111
, và không phải là 1
và 111
hay 11
và 11
. Tôi sẽ thêm trường hợp thử nghiệm của bạn, nhưng đầu ra là một hoặc cả hai 111
và 222
.
8888858888866656665666
. Nếu tôi giải thích chính xác thách thức, cả hai giải pháp Brachylog và 05AB1E đều thất bại.