Вступление
Рассмотрим следующий пример:
CODE
+ GOLF
——————
GREAT
Это уравнение, в котором каждая буква представляет собой десятичную цифру, а слова представляют собой натуральные числа (похожие буквы представляют одинаковые цифры, а разные буквы представляют разные цифры). Задача состоит в том, чтобы сопоставить каждую букву с ее цифровым значением, чтобы уравнение было правильным. Одно решение для уравнения выше:
9265
+ 1278
——————
10543
Твое задание
Ваша задача - написать программу или функцию, которая может решать такие уравнения, как показано выше.
вход
Входные данные представляют собой строку в следующем формате:
[A-Z]+\+[A-Z]+=[A-Z]+
Пример:
CODE+GOLF=GREAT
AA+BB=CC
Пробелы опущены, и будут использоваться только буквы между заглавными буквами A и Z (без специальных или строчных букв).
Эта строка может быть прочитана из стандартного ввода, из файла или как параметр функции.
Выход
У вас есть следующие две опции для выходного формата:
- исходное уравнение с заменой цифр
- список букв и их значений
Если существует несколько решений, любое (но только одно) из них должно быть возвращено. Если решений нет, программа должна вернуть пустую строку или ноль. Вывод может быть возвращен в виде строки, может быть записан в стандартный вывод или файл.
Пример:
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.
Бесконечные циклы по-прежнему ничего не выводят ... можно?