Виклик:
У моїй музичній колекції тисячі пісень, і на щастя для мене, мій улюблений плеєр має функцію пошуку. У мене також чудова пам’ять - я пам'ятаю назву кожної пісні в своїй колекції. Однак я дуже ледачий і не люблю набирати текст - кожен додатковий набір клавіш - справа!
- Яку найкоротшу струну потрібно шукати, щоб виділити одну пісню? Допоможіть мені запам'ятати список клавіш, якими я можу скористатися, щоб мінімізувати введення тексту під час пошуку!
Це код-гольф , тому найкоротший код виграє.
Правила:
З огляду на вхідний список назв пісень, сформуйте перелік ключових запитів із урахуванням таких обмежень:
- Кожна назва пісні повинна мати ключ пошуку.
- Загальна кількість символів у списку вихідних даних повинна бути якомога меншою.
- Мій улюблений музичний плеєр - foobar2000 :
- Функція пошуку не відрізняється від регістру. (
apple
те саме, щоaPpLE
). - Кожен ключ пошуку повинен складатися з одного або декількох "слів" у будь-якому порядку, розділених пробілами:
- Кожне слово має бути підрядком відповідної назви пісні.
- Якщо одна і та ж підрядка задана кілька разів, то вона повинна виникати стільки разів у відповідному заголовку пісні.
- Якщо сама підрядка містить пробіл, то ця підрядка повинна бути оточена лапками.
- Функція пошуку не відрізняється від регістру. (
Підказки:
- Часто для деяких назв пісень існує правило, що відповідає правилам 2. Кілька пошукових ключів. У такому випадку будь-яка одна клавіша зробить, але ви отримаєте очки браузера, щоб перерахувати їх усі.
- Ви можете припустити, що в списку введення будуть лише символи ASCII, але бали брауні будуть присвоєні за сумісність UTF-8.
- Чи було важко дотримуватись Правила 3? Ось як це працює:
Приклад:
Якщо моя музична колекція складалася лише з двох альбомів, Майкл Джексон " Зі стіни" та " Трилер" :
Ви можете скористатися списками вище для тестування програми. Ось попередня версія другого списку:
["Don't Stop 'Til You Get Enough","Rock with You","Working Day and Night","Get on the Floor","Off the Wall","Girlfriend","She's out of My Life","I Can't Help It","It's the Falling in Love","Burn This Disco Out","Wanna Be Startin' Somethin'","Baby Be Mine","The Girl Is Mine","Thriller","Beat It","Billie Jean","Human Nature","P.Y.T. (Pretty Young Thing)"]
["Wanta Be A Wanna B","Wanta Bea A Wanna B","Wanna Be A Wanna Bea"]
?