初级编程通关练习题 #4 – 寻找缺失数字

按照下面的格式给定一个仅包括加法符 +、减法符 – 和乘法符 * 的数学公式字符串:

[数字] [操作符] [数字] = [数字]

算式中包括若干个问号?都代表同样的单个数字(0-9),而且该数字和算式中其他数字不重复。如果问号位于一个数字的首位,该问号不能为0。请找出符合要求的最小数字。譬如:“?*11=??”,该问号是 2, 数字1已经存在,所以数字2是符合要求的最小值:2 * 11 = 22。

输入样例:

“??*??=435?”

输出样例:

6

66 * 66 = 4356,所以问号代表的数字是 6。

算法思路:

  • 要点:比较字符串算式是否成立,可以使用函数 eval
  • 方法一:使用正则表达式来进行字符串匹配。先排除0-9中已经存在的数字,然后从小到大逐一循环来比较算式是否成立。
  • 方法二:使用字符串函数 replace 来做匹配,步骤同方法一。