Cho hai chuỗi, tìm bảng dịch ( mật mã thay thế ) giữa hai chuỗi, nếu không thể dịch, xuất sai. Câu trả lời phải được thu nhỏ và tạo từ trái sang phải. Ký tự đầu tiên được dịch giữa các từ phải là ký tự đầu tiên trong bảng dịch. Ngoài ra, bất kỳ chữ cái nào không được dịch (ở cùng một vị trí như ban đầu), KHÔNG nên ở trong bảng dịch.
Có lẽ dễ dàng xác định nhất thông qua các ví dụ:
Các trường hợp hợp lệ
"bat", "sap" => ["bt","sp"]
Lưu ý thứ tự, một đầu ra ["tb","ps"]
không hợp lệ cho thử thách này.
"sense", "12n12" => ["se","12"]
Lưu ý cách n
không được dịch bởi vì nó là mối quan hệ 1-1.
"rabid", "snail" => ["rabd","snal"]
Lưu ý cách i
không được dịch bởi vì nó là mối quan hệ 1-1.
"ass", "all" => ["s","l"]
A không được bao gồm, nó giữ nguyên, s
có thể ánh xạ l
do khớp mẫu.
"3121212", "ABLBLBL" => ["312","ABL"]
Phù hợp với mô hình hoàn hảo.
Trường hợp giả
"banana", "angular" => false
(không cùng chiều dài, không thể).
"animal", "snails" => false
(mỗi ký tự chỉ có thể được sử dụng ONCE ở mỗi bên của bản dịch).
"can","cnn" => false
(n được sử dụng ngầm trong dịch thuật, do đó, việc xác định bảng dịch có n-> a sẽ không hợp lệ)
Do đó, [aimal,sails]
là một câu trả lời không hợp lệ, làm cho sai lầm này.
"a1", "22" => false
Xem "hãy cẩn thận", điều này được liệt kê là giả. Trong trường hợp này, đó là vì a
và 1
không thể cả hai ánh xạ tới 2
. (Mỗi ký tự chỉ có thể được sử dụng ONCE ở mỗi bên của bản dịch).
Câu trả lời này có vẻ là một điểm chuẩn tốt: /codegolf//a/116807/59376
Nếu bạn có câu hỏi về chức năng của hai cặp từ chưa được liệt kê, hãy trì hoãn việc thực hiện này.
Quy tắc I / O
- Đầu vào có thể là một mảng 2 phần tử hoặc 2 đầu vào riêng biệt.
- Đầu ra có thể là một mảng hoặc phân cách dòng / không gian mới, tương tự như cách tôi đã hiển thị.
- Đầu ra sai có thể là 0, -1 hoặc sai. Lỗi / đầu ra trống cũng tốt.
- Bạn được đảm bảo rằng
a
sẽ không bằng nhaub
vàa
cũng khôngb
trống rỗng. a
vàb
là các chuỗi chữ cái chỉ có thể in-ASCII.
Hãy cẩn thận
- Các bản dịch phải xuất hiện từ trái sang phải, xem ví dụ 1.
- Bạn không được xuất các ký tự vẫn giữ nguyên.
- Chương trình của bạn chỉ có thể có hai chuỗi
a
vàb
. - Mỗi ký tự chỉ có thể được sử dụng ONCE ở mỗi bên của bản dịch. Đây là những gì làm cho bản dịch từ
snails
đểanimals
không thể. - Thay thế đệ quy không nên xảy ra. Ví dụ về thay thế đệ quy:
"a1","22"->[a1,12]
trong đó a được thay thế đầu tiên bằng 1, sau đó cả hai kết quả 1 được thay thế bằng 2. Điều này là không chính xác, giả sử tất cả các bản dịch xảy ra độc lập với nhau, có nghĩa là điều này là giả. Ý nghĩa: "a1" với bảng dịch của [a1,12] ước tính thành 12 (không phải 22)