Вступ
Розглянемо наступний приклад:
CODE
+ GOLF
——————
GREAT
Це рівняння, де кожна літера представляє десяткову цифру, а слова представляють натуральні числа (подібні букви представляють подібні цифри, а різні літери - різні цифри). Завдання полягає в тому, щоб зіставити кожну букву з її цифрним значенням, щоб рівняння було правильним. Одне рішення для рівняння вище:
9265
+ 1278
——————
10543
Ваше завдання
Ваше завдання - написати програму або функцію, яка може вирішити такі рівняння, як видно вище.
Вхідні дані
Вхід - це рядок у такому форматі:
[A-Z]+\+[A-Z]+=[A-Z]+
Приклад:
CODE+GOLF=GREAT
AA+BB=CC
Пробіли опущені, і будуть використовуватися лише літери між великими літерами A і Z (ніяких спеціальних і малих літер).
Цей рядок може читатися зі стандартного вводу, з файлу або як функціональний параметр.
Вихідні дані
У вихідного формату є два варіанти:
- вихідне рівняння з підміненими цифрами
- список букв та їх значення
Якщо є кілька рішень, будь-яке (але тільки одне) з них слід повернути. Якщо рішень немає, програма повинна повернути порожній рядок або null. Вихід може бути повернутий у вигляді рядка, може бути записаний у стандартний вихід або у файл.
Приклад:
9265+1278=10543
A=1 B=2 C=3
(ви можете використовувати будь-який роздільник)
Правила
- Щоб полегшити ситуацію, номери прийнято починати з 0, але ви можете обробляти числа з провідними 0 як недійсні рішення, це залежить від вас
- Подібні букви являють собою подібні цифри, а різні літери - різні цифри
- Ви можете використовувати будь-яку мову та стандартну бібліотеку обраної мови (без зовнішніх ліб)
- Ви не можете підключитися до будь-яких ресурсів в Інтернеті (навіщо це взагалі?)
- Це завдання з гольфовим кодом, найкоротший виграш коду. Послідовні символи пробілу вважаються одним символом. (Отже, будь-яка програма, написана у пробілі, автоматично виграє)
У мене є дещо хакітське рішення, використовуючи 179 знаків. Якщо щось не зрозуміло, будь ласка, запитайте мене в коментарях.
If there are no solutions, the program should return an empty string or null.
Нескінченні петлі все ще нічого не виводять ... чи можу я?