Mục tiêu của Thử thách Rosetta Stone là viết các giải pháp bằng càng nhiều ngôn ngữ càng tốt. Thể hiện đa ngôn ngữ lập trình của bạn!
Các thách thức
Chúng tôi đã thực hiện mã hóa chạy dài được fore nhưng chỉ coi chạy của một nhân vật duy nhất. Tất nhiên, đôi khi chúng ta có thể tiết kiệm nhiều hơn nếu chúng ta xem xét việc chạy nhiều ký tự.
Lấy aaaxyzxyzxyzdddd
ví dụ. Điều này có thể được nén để 3a3{xyz}4d
. Nhiệm vụ của bạn là viết một chương trình hàm, với một chuỗi các chữ cái và dấu cách phân biệt chữ hoa chữ thường, nén nó một cách tối ưu bằng cách sử dụng mã hóa độ dài chạy cho các lần chạy nhiều ký tự.
Bạn có thể nhận đầu vào thông qua đối số chức năng, STDIN hoặc ARGV và trả lại kết quả hoặc in nó sang STDOUT.
Chạy không được lồng nhau, vì vậy aaabbbaaabbb
phải 3a3b3a3b
, không 2{3a3b}
. Tức là chuỗi phải được mã hóa (hoặc giải mã) trong một lần chạy.
Hậu quả của nén tối ưu
Một số ví dụ trong đó ứng dụng ngây thơ của mã hóa độ dài chạy có thể dẫn đến kết quả tối ưu:
abab
không được "nén" thành2{ab}
aaaabcdeabcde
không được nén4abcdeabcde
mà3a2{abcde}
thay vào đó.
Nếu có hai phiên bản tối ưu (ví dụ aa
và 2a
hoặc abcabc
và 2{abc}
) thì kết quả vẫn ổn.
Ví dụ
Input Output
aa aa -or- 2a
aaaaaAAAAA 5a5A
ababa ababa
abababa a3{ba} -or- 3{ab}a
foo foo bar 2{foo }bar
aaaabcdeabcde 3a2{abcde}
xYzxYz xYzxYz -or- 2{xYz}
abcabcdefcdef abcab2{cdef}
pppqqqpppqqq 3p3q3p3q
pppqqqpppqqqpppqqq 3{pppqqq}
Chấm điểm
Mỗi ngôn ngữ là một cuộc thi riêng biệt để ai có thể viết bài dự thi ngắn nhất, nhưng người chiến thắng chung cuộc sẽ là người chiến thắng hầu hết các cuộc thi phụ này. Điều này có nghĩa là một người trả lời bằng nhiều ngôn ngữ không phổ biến có thể đạt được lợi thế. Code golf chủ yếu là một công cụ bẻ khóa khi có nhiều hơn một giải pháp trong một ngôn ngữ: người có chương trình ngắn nhất được tín dụng cho ngôn ngữ đó.
Nếu có hòa, người chiến thắng sẽ là người có nhiều bài dự thi thứ hai nhất (v.v.).
Quy tắc, hạn chế và ghi chú
Vui lòng giữ tất cả các bài nộp khác nhau của bạn trong một câu trả lời.
Ngoài ra, không có shenanigans nào có cùng câu trả lời trong các phương ngữ ngôn ngữ hơi khác nhau. Tôi sẽ là người đánh giá xem những bài nộp nào đủ khác nhau.
Bảng xếp hạng hiện tại
Phần này sẽ được cập nhật định kỳ để hiển thị số lượng ngôn ngữ và những người đang dẫn đầu trong mỗi ngôn ngữ.
- C # (265) - edc65
- JavaScript (206) - edc65
- Con trăn (214) - Sẽ
- VB.NET (346) - edc65
Xếp hạng người dùng hiện tại
- edc65 (3)
- Ý chí (1)