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 nkhông được dịch bởi vì nó là mối quan hệ 1-1.
"rabid", "snail" => ["rabd","snal"]
Lưu ý cách ikhô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, scó thể ánh xạ ldo 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ì avà 1khô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
asẽ không bằng nhaubvàacũng khôngbtrống rỗng. avàblà 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
avà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đểanimalskhô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)