П'яний дядько (вибачте мене та АУС за блокування регіону) - вигаданий персонаж із Saturday Night Live. Він часто плутає слова для інших, які звучать як вони. Для цього виклику вам потрібно перетворити нормальну мову в п'яний.
Алгоритм
Переклад на п'яний вимовляє потребу замінювати порядок слів у тексті. Обмін базується на схожості пияцтва двох слів. Подібність пияцтва визначається як кількість літер, у яких два слова мають однакові показники . Однак два однакових слова мають схожість на пияцтво -1 . Наприклад, tree
і friend
мають схожість на пияцтво 2, оскільки вони обидва мають 'r' в індексі 1, а 'e' на індексі 3.
Все, що вам потрібно зробити - це знайти два слова в тексті з найбільшою схожістю на пияцтво, а потім поміняти їх. Після того, як ви поміняєте місцями два терміни, вони більше не рухаються. Потім ви дивитесь на інші терміни, що можна змінити, і поміняйте місцями, які мають найбільшу схожість на пияцтво. Ви продовжуєте це робити, поки не зможете більше поміняти місцями. Потім ви виводите (або повертаєте для функції) оновлений текст.
Особливості
- Для простоти введення - це список слів, що складається з символів у [A-Za-z]
- Кожен вхід містить принаймні одне слово
- Буква відповідності невідчутно до регістру:
A
матчі зa
( Примітка: У зв'язку з цим правиломDog
іdog
є ідентичними, і , отже , мають DS від -1) - Якщо кілька пар мають найбільшу схожість на пияцтво:
- Зі слів, які можуть збільшити схожість на пияцтво, виберіть одне із найнижчим показником у списку
- З'єднайте це слово з найнижчим показником, яке максимально схоже на пияцтво
Приклади
Drunk Uncle needs your help
(назва)- S 1 : П'яний <=> ваш (DS: 1)
your Uncle needs Drunk help
- S 2 : потрібна <=> допомога (DS: 1)
your Uncle help Drunk needs
- Вихід:
your Uncle help Drunk needs
- S 1 : П'яний <=> ваш (DS: 1)
I love fidget spinners
(нудний приклад)- S 1 : Я <=> любов (DS: 0)
love I fidget spinners
- S 2 : фіджери <=> спінери (DS: 0)
love I spinners fidget
- S 1 : Я <=> любов (DS: 0)
dog eat dog ear
- S 1 : їжте <=> вухо (DS: 2)
dog ear dog eat
- S 2 : собака <=> собака (DS: -1)
dog ear dog eat
(цей крок просто формальність)
- S 1 : їжте <=> вухо (DS: 2)
Let me tell you a story
- S 1 : Нехай <=> мене (DS: 1)
me Let tell you a story
- S 2 : скажіть <=> ви (DS: 0)
me Let you tell a story
- S 3 : історія <=> (DS: 0)
me Let you tell story a
- S 1 : Нехай <=> мене (DS: 1)
Too many money and purple people
- S 1 : фіолетовий <=> людей (DS: 4)
Too many money and people purple
- S 2 : багато <=> грошей (DS: 2)
Too money many and people purple
- S 3 : Занадто <=> і (DS: 0)
and money many Too people purple
- S 1 : фіолетовий <=> людей (DS: 4)
Повідомте мене, чи є ще кілька прикладів, які ви хочете висвітлити.