Об'єктивна
З Вікіпедії :
Рекурсивна абревіатура - це абревіатура, яка позначає себе в виразі, за який вона стоїть.
Ваша мета - перевірити, чи рядок є рекурсивним абревіатурою.
- Скорочення - перше слово
- Слова не відрізняються від регістру, розділені одним пробілом.
- Даний рядок не містить розділових знаків і апострофа.
- Тільки перша буква кожного слова може входити до абревіатури.
Ви також повинні дати функціональні слова . Для простоти кожне слово може розглядатися як функціональне слово.
Приклад
f("RPM Package Manager") => { true, [] }
f("Wine is not an emulator") => { true, ["an"] }
f("GNU is not Unix") => { true, ["is"] }
f("Golf is not an acronym") => { false }
f("X is a valid acronym") => { true, ["is","a","valid","acronym"] }
Ви можете надати повну програму або функцію.
Вхідний рядок може бути взято з STDIN або як аргумент функції.
Результат виводу може бути істинним / хибним, 0/1, так / ні ...
Список функціональних слів (будь-який формат списку є дійсним) потрібно наводити лише тоді, якщо це рекурсивна абревіатура (навіть якщо список порожній) . Вам не потрібно зберігати великі літери функціональних слів.
Критерії виграшу
Це кодовий гольф , найкоротший виграш коду.