介绍
考虑以下示例:
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开头作为无效解决方案,这取决于您
- 相似的字母代表相似的数字,不同的字母代表不同的数字
- 您可以使用任何语言和所选语言的标准库(无外部库)
- 您无法连接到Internet上的任何资源(为什么仍要这么做?)
- 这是一项代码高尔夫任务,最短的代码获胜。连续的空白字符算作单个字符。(因此,用空格编写的任何程序都会自动获胜)
我有一个使用179个字符的解决方案。如果不清楚,请在评论中问我。
If there are no solutions, the program should return an empty string or null.
无限循环仍然不输出任何内容...可以吗?