Цензори - це звичайний інструмент, який використовується на інтербетах. Але вони часто цензурують занадто багато слова, і, таким чином, роблять прокляття неоднозначним для читача. І іноді вони недостатньо цензурують, тому слова все ще залишаються ображаючими. Ваше завдання - це виправити.
Ваше завдання
Напишіть програму / функцію / все, що містить два списки та рядок. Перший список буде словник усіх слів на вашій мові , як: ["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"]
. Наступний буде підмножина першого списку , що містить всі образливих слів в мові: ["belgium", "offensive"]
. Слова в цих списках гарантовано містять лише малі літери алфавіту.
Рядок - це фраза, яку доведеться цензурувати. Він буде складатися зі слів зі словника, розділених пробілами:"Goodbye offensive belgium"
Поверненим значенням буде ця фраза, цензурована. Однак вам доведеться певним чином цензурувати. Зокрема, для кожного слова у списку образливих ви повинні цензувати якомога більше букв, залишаючись абсолютно однозначним у головному словнику. Так ось це було б: Goodbye o******** b******
.
Роз'яснення
- Ваш код повинен інтерпретувати слова без регістру, але повертатись із початковою літери.
- Якщо є кілька оптимальних відповідей, виберіть будь-який із них.
- Якщо однозначна цензура неможлива, цензуруйте одну літеру, яка має найменшу кількість інших можливих тлумачень (Якщо декілька можливих, знову ж, її вибір).
Випробування
["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*"
Це код-гольф, тому найкоротший d * mn код у байтах виграє!
PS Хтось зловив посилання на бельгію? ; P
["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******"
але тестові випадки говорять["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye offensive b******"
Тестовий випадок неправильний, правильно?