Khoảng cách Hamming giữa hai chuỗi có độ dài bằng nhau là số vị trí mà các ký tự tương ứng khác nhau. Nếu các chuỗi không có độ dài bằng nhau, khoảng cách Hamming không được xác định.
Thử thách
Viết chương trình hoặc hàm tìm khoảng cách Hamming lớn nhất trong số tất cả các cặp chuỗi từ danh sách các chuỗi, được đệm theo yêu cầu theo các quy tắc được mô tả bên dưới.
Các nhân vật sẽ từ bên trong a-zA-Z0-9
.
Các chuỗi có thể không bằng nhau về chiều dài, do đó, đối với mỗi so sánh, chuỗi ngắn hơn phải được đệm như sau:
- quấn chuỗi từ đầu nhiều lần cần thiết để phù hợp với độ dài cần thiết
- thay đổi trường hợp của các chữ cái mỗi gói thời gian lẻ (thứ 1, thứ 3, thứ 5, v.v.)
- để những thứ bên ngoài
a-zA-Z
không thay đổi khi gói
Ví dụ: giả sử bạn cần đệm chuỗi 5 ký tự ab9Cd
để kết thúc bằng 18 ký tự. Bạn sẽ kết thúc với:
ab9CdAB9cDab9CdAB9
^^^^^ ^^^
với ^
thêm dưới 1 và thứ 3 kết thúc tốt đẹp với điểm nhấn cho trường hợp thay đổi.
Đầu ra đầu vào
Định dạng đầu vào / đầu ra là linh hoạt. Bạn có thể giả sử đầu vào có ít nhất hai chuỗi và tất cả các chuỗi sẽ có ít nhất một ký tự.
Đầu ra là một số nguyên.
Quy tắc
Đây là mã golf . Quy tắc tiêu chuẩn áp dụng.
Các trường hợp thử nghiệm
[ "a", "b" ] => 1
[ "a", "b", "c" ] => 1
[ "a", "a", "c" ] => 1
[ "abc", "abcd" ] => 1
[ "abc12D5", "abC34d3", "ABC14dabc23DAbC89d"] => 17
[ "a", "Aaa", "AaaA", "aAaAa", "aaaaaaaaaaaaaa", "AAaAA", "aAa" ] => 8
["AacaAc", "Aab"] => 2
Thực hiện tham khảo
Tôi đã thử nghiệm các ví dụ với mã R (hoàn toàn không được mã hóa) mà bạn có thể thử ở đây để so sánh với bất kỳ ví dụ nào khác mà bạn có thể thử với mã của mình.
["AacaAc", "Aab"] => 2
. Một câu lạc bộ có mục đích cho câu trả lời Jelly của tôi sẽ thất bại trong trường hợp đó, nhưng sẽ vượt qua tất cả những người khác.