Для цього завдання ви повинні реалізувати Abbrevмодуль Ruby якомога менше коду.
Виклик
Вхід буде будь-яким у вашій мові як масив (масив, список, послідовність тощо) рядків. Ви можете написати функцію або приймати слова, розділені комами, на STDIN.
Потім потрібно обчислити набір однозначних префіксів для цих рядків. Це означає, що ви повинні повернути хеш (або карту, об’єкт тощо) абревіатур до їх початкових рядків.
"Префікс" - це підрядок початкового рядка, що починається на початку рядка. Наприклад, "pref" - це префікс слова "префікс".
Однозначну префікс один , що може означати тільки одне слово. Наприклад, якщо ваш вхід є
car,cat, тоcaце не однозначний префікс, оскільки це може означати або "автомобіль", або "кіт".Виняток із цього правила полягає в тому, що слово - це завжди префікс сам по собі. Наприклад, якщо у вас є такий вхід, як
car,carpet, вінcar:carповинен бути у вашому висновку.
Потім ви можете повернути хеш / карту / об’єкт / тощо. з вашої функції (або виконайте еквівалент мовою) або роздрукуйте її до STDOUT
key:valueпарами у виглядіf:foo,fo:foo,.... (Пари ключ-значення також можуть бути розділені пробілом, якщо він скоротить ваш код.)
Тестові справи
Input code,golf,going
Output c:code,co:code,cod:code,code:code,gol:golf,golf:golf,goi:going,goin:going,going:going
Input pie
Output p:pie,pi:pie,pie:pie
Input pie,pier,pierre
Output pie:pie,pier:pier,pierr:pierre,pierre:pierre
Input a,dog
Output a:a,d:dog,do:dog,dog:dog
Правила
Вхід не буде містити повторюваних елементів.
Ваш вихід може бути в будь-якому порядку; вам не доведеться сортувати це.
Ви не можете використовувати вбудований
Abbrevмодуль / функцію / таку річ, як Ruby.Це код-гольф , тому найкоротший код у байтах виграє!
key:value\nkey:value\nkey:value...?