Bác say rượu (xin lỗi ME và AUS cho khóa khu vực) là một nhân vật hư cấu từ Saturday Night Live. Anh ta thường nhầm lẫn những từ dành cho người khác nghe giống họ. Đối với thử thách này, bạn cần chuyển đổi lời nói bình thường thành say rượu.
Thuật toán
Dịch sang say rượu yêu cầu hoán đổi thứ tự các từ trong văn bản. Trao đổi dựa trên sự giống nhau của say rượu của hai từ. Độ tương tự say rượu được định nghĩa là số lượng chữ cái mà hai từ đã xảy ra tại cùng một chỉ số . Tuy nhiên, hai từ giống hệt nhau có độ tương tự say là -1 . Ví dụ: tree
và friend
có độ tương tự say rượu là 2, vì cả hai đều có 'r' ở chỉ số 1 và 'e' ở chỉ số 3.
Tất cả bạn phải làm là tìm hai từ trong văn bản có độ tương tự say cao nhất, sau đó trao đổi chúng. Khi bạn trao đổi hai điều khoản, chúng không di chuyển nữa. Sau đó, bạn nhìn vào các điều khoản có thể trao đổi còn lại và trao đổi hai điều có độ tương tự say cao nhất. Bạn tiếp tục làm điều này cho đến khi bạn không thể trao đổi thêm nữa. Sau đó, bạn xuất (hoặc trả lại, cho một chức năng) văn bản được cập nhật.
Cụ thể
- Để đơn giản, đầu vào là danh sách các từ bao gồm các ký tự trong [A-Za-z]
- Mỗi đầu vào chứa ít nhất một từ
- Khớp chữ không phân biệt chữ hoa chữ thường:
A
khớp vớia
( Lưu ý: Do quy tắc nàyDog
vàdog
giống hệt nhau, do đó có DS là -1) - Nếu nhiều cặp có độ tương tự say cao nhất:
- Trong số các từ, có thể tối đa hóa sự giống nhau của say rượu, hãy chọn một từ có chỉ số thấp nhất trong danh sách
- Ghép nối từ đó với từ có chỉ số thấp nhất tối đa hóa độ tương tự say rượu
Ví dụ
Drunk Uncle needs your help
(tiêu đề)- S 1 : Say rượu <=> của bạn (DS: 1)
your Uncle needs Drunk help
- S 2 : cần <=> trợ giúp (DS: 1)
your Uncle help Drunk needs
- Đầu ra:
your Uncle help Drunk needs
- S 1 : Say rượu <=> của bạn (DS: 1)
I love fidget spinners
(ví dụ nhàm chán)- S 1 : Tôi <=> tình yêu (DS: 0)
love I fidget spinners
- S 2 : fidget <=> spinners (DS: 0)
love I spinners fidget
- S 1 : Tôi <=> tình yêu (DS: 0)
dog eat dog ear
- S 1 : ăn <=> tai (DS: 2)
dog ear dog eat
- S 2 : dog <=> dog (DS: -1)
dog ear dog eat
(bước này chỉ là hình thức)
- S 1 : ăn <=> tai (DS: 2)
Let me tell you a story
- S 1 : Hãy <=> tôi (DS: 1)
me Let tell you a story
- S 2 : nói với <=> bạn (DS: 0)
me Let you tell a story
- S 3 : một câu chuyện <=> (DS: 0)
me Let you tell story a
- S 1 : Hãy <=> tôi (DS: 1)
Too many money and purple people
- S 1 : màu tím <=> người (DS: 4)
Too many money and people purple
- S 2 : nhiều <=> tiền (DS: 2)
Too money many and people purple
- S 3 : Quá <=> và (DS: 0)
and money many Too people purple
- S 1 : màu tím <=> người (DS: 4)
Hãy cho tôi biết nếu có nhiều ví dụ bạn muốn tôi đề cập.