Проблема
Ви застрягли в салоні посеред лісу, лише старий скребковий комплект, щоб розважити себе. При огляді ви бачите, що літери для скребля настільки зношені, що видно лише точки на кожній букві.
Тим не менш, ви вирішили пограти в гру. Ви витягуєте з мішка сім букв і поміщаєте їх на піднос, ваше завдання - визначити, якими можуть бути ці букви.
Тож загалом, даючи список точок, перетворюйте його в будь-який можливий рядок або список літер.
Плитки та розподіли
- 2 порожні плитки (набравши 0 балів)
- 1 бал: E × 12, A × 9, I × 9, O × 8, N × 6, R × 6, T × 6, L × 4, S × 4, U × 4
- 2 бали: D × 4, G × 3
- 3 бали: B × 2, C × 2, M × 2, P × 2
- 4 бали: F × 2, H × 2, V × 2, W × 2, Y × 2
- 5 балів: K × 1
- 8 балів: J × 1, X × 1
- 10 балів: Q × 1, Z × 1
Отже, якщо у вас є список очок, [10,10,8,5,1,1,1]
то він "QZJKEEE"
би був дійсним, але "QQJKEEE"
не був би дійсним (оскільки в мішку є лише плитка Q 1)
Конкретні правила проблеми
- Ви можете припустити, що всі вхідні дані є дійсними, і що завжди буде 7 плиток (тобто це не буде список із семи десяткових плиток і не буде 9 плиток)
- Ви можете припустити, що жодна плитка не була витягнута з мішка (тому розподіл - це стандартний розподіл англійської плитки, як визначено вище)
- Не потрібно генерувати дійсне слово, лише дійсний рядок літер.
- Порядок вашої рядка не має значення, якщо для кожної плитки є відповідна літера.
- Бали базуються на стандартних англійських плитках для скремблення, як визначено вище.
- Ви можете виводити у верхньому або нижньому регістрі, для порожньої плитки можна виводити або символ пробілу, або підкреслення "_"
- Ваша відповідь може відображати будь-яке розумне представлення плиток, таких як Список, Рядок, Масив або Послідовність
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей з мов, що не кодують гольф. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Для вашої відповіді застосовуються стандартні правила з правилами вводу / виводу за замовчуванням , тому вам дозволяється використовувати STDIN / STDOUT, функції / метод із відповідними параметрами та повним програмами типу повернення. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду (тобто TIO ).
- Також настійно рекомендується додавати пояснення до своєї відповіді.
Випробування
Очевидно, оскільки ви можете вивести будь-яке можливе значення, важко визначити суворі тестові випадки.
Деякі випадки з можливим дійсним значенням повернення:
[10,0,10,5,8,8,0] -> "Q ZKJX "
[1,1,1,1,1,1,1] -> "EEEEEEE"
[1,2,3,4,5,8,0] -> "NDBHKJ "
[2,2,2,2,2,2,2] -> "DGDGDGD"
Деякі випадки з недійсним значенням повернення:
[10,0,10,5,8,8,0] -> "Q QKJX " - Too many Qs
[1,1,1,1,1,1,1] -> "EEEEEE " - Space is 0 points not 1
[1,2,3,4,5,8,0] -> "NDBH" - Too short
[1,2,3,4,5,8,0] -> "NDBHKJ I" - Too long
[1,2,3,4,5,8,0] -> "ÉDBHKJ1" - Contains none scrabble characters
[2,2,2,2,2,2,2] -> "GDGDGDG" - Contains too many Gs (case for invalid cycling)
[2,2,2,2,2,2,2]
(єдиний випадок, коли важливо почати з, D
а не, G
якщо використовується велосипедний метод)