Kiểm duyệt là một công cụ phổ biến được sử dụng trên các interwebs. Nhưng họ thường kiểm duyệt quá nhiều từ này, và do đó làm cho lời nguyền trở nên mơ hồ với người đọc. Và đôi khi họ không kiểm duyệt đủ, vì vậy những lời nói vẫn còn xúc phạm. Nhiệm vụ của bạn là khắc phục điều đó.
Nhiệm vụ của bạn
Viết chương trình / hàm / bất cứ thứ gì có hai danh sách và chuỗi. Danh sách đầu tiên sẽ là từ điển của tất cả các từ trong ngôn ngữ của bạn như : ["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"]
. Phần tiếp theo sẽ là tập hợp con của danh sách đầu tiên chứa tất cả các từ gây khó chịu trong ngôn ngữ : ["belgium", "offensive"]
. Các từ trong các danh sách này được đảm bảo chỉ chứa các chữ cái viết thường của bảng chữ cái.
Chuỗi là cụm từ bạn sẽ phải kiểm duyệt. Nó sẽ được tạo từ các từ trong từ điển, cách nhau bởi khoảng trắng:"Goodbye offensive belgium"
Giá trị trả về sẽ là cụm từ đó được kiểm duyệt. Tuy nhiên, bạn phải kiểm duyệt theo một cách nhất định. Cụ thể, đối với mỗi từ trong danh sách tấn công, bạn phải kiểm duyệt càng nhiều chữ cái càng tốt trong khi vẫn hoàn toàn không rõ ràng trong từ điển chính. Vì vậy, ở đây nó sẽ là : Goodbye o******** b******
.
Làm rõ
- Mã của bạn phải diễn giải các từ không phân biệt chữ hoa chữ thường, nhưng trả về với chữ viết hoa ban đầu.
- Nếu có nhiều câu trả lời tối ưu, hãy chọn bất kỳ câu trả lời nào.
- Nếu không thể kiểm duyệt rõ ràng, hãy kiểm duyệt một chữ cái có số lượng giải thích ít nhất có thể khác (Nếu có thể nhiều lần, một lần nữa, đó là lựa chọn của bạn).
Các trường hợp thử nghiệm
["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******"
["word"] ["word"] "word" -> "****"
["hot", "hat", "bat", "had"] ["hat"] "hat" -> "*at" or "h*t" or "ha*"
https://gist.github.com/deekayen/4148741 ["quart"] "I am a quart" -> "I am a q**r*"
Đây là mã golf để mã d * mn ngắn nhất tính theo byte thắng!
PS Bất cứ ai bắt được tài liệu tham khảo với belgium? ; P
["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******"
nhưng trường hợp kiểm tra nói["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye offensive b******"
Trường hợp kiểm tra là sai, đúng không?