介绍
我的计算器很奇怪。有时,当我输入时8
会显示2
。有时,当我输入a 6
时会显示+
。一些按钮混在一起!
谁能帮我确定哪个?
挑战:
输入:错误方程式列表,结果正确。
输出:交换的两个按钮。
例如:
输入可以是:
123 = 3
8423 = 252
4+4 = 8
4*7-10 = 417
9/3 = 3
42-9 = -36
其预期的输出是:2
和*
。
为什么?因为如果我们交换2和*,则所有等式都是正确的:
1*3 = 3
84*3 = 252
4+4 = 8
427-10 = 417
9/3 = 3
4*-9 = -36
挑战规则:
- 输入可以采用任何合理的格式。可以是一个以空格分隔的字符串;字符串列表或-array; 一个包含方程式的列表和另一个包含正确结果的列表。你的来电。请说明您使用的输入格式!
注意:这也意味着你被允许输入测试用例-5--15
作为-5- -15
或-5 - -15
。但是,--
输入的结果应不带空格或每个数字之间带空格。因此,9119
可以按9119
或方式输入测试用例9 1 1 9
(91 19
不允许这样做是因为您随后可以被用于查找的空间所引导- -
)。因此,空格是(某种程度上)可选的,并且是允许的。 - 输出格式也可以是任何合理的格式。可以是两个字符;单个两个字符的字符串;包含两个字符的字符串列表。你的来电。同样,请说明您使用的输出格式!
- 您可以使用映射到的任何14种不同的输出
0123456789+-*/
。因此,您甚至可以根据需要输出两个不同的整数(再次,请指定您使用的映射,如果有的话)。 - 您只需要支持整数。因此,不会有类似
1/8=0.125
或的测试用例1/8=0
。 - 您必须支持的算术操作数:加法(
+
); 减(-
); 乘法(*
或×
或·
); 除(/
或÷
)。(注意:括号之间的字符仅作为说明添加。) - 您必须支持负数。这
-
可以在方程式中解释为数学操作数还是负数指示符。 - 你可以假设给定的公式不正确和应该正确的方程是总是有效的(所以不会有类似的事情
4-/2
或9+-+8
为例)。 - 错误的输入方程式可能包含被0除的结果,但校正后的方程和期望方程将永远不会包含被0除的结果。
- 即使您换回了预期的按钮,不正确的输入等式也可能已经正确。
- 给定的输入方程式对于按钮的交换可能是无关紧要的(如
4+4=8
和9/3=3
方程式,以及被交换的按钮2
和*
)。 - 您可以假设在给定的测试用例中始终只能进行一次可能的交换。
- 两个要交换的按钮将始终出现在至少一个不正确的方程式中。
一般规则:
- 这是代码高尔夫球,因此最短答案以字节为单位。
不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 - 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法和返回类型的完整程序。你的来电。
- 默认漏洞是禁止的。
- 如果可能,请为您的代码添加一个带有测试的链接。
- 另外,如有必要,请添加说明。
测试用例:
Input:
123 = 3
8423 = 252
4+4 = 8
4*7-10 = 417
9/3 = 3
42-9 = -36
Output: 2 *
Input:
4/2 = 6
3/0 = 3
0/8+2 = 4
95-5 = 90
4+2 = 2
Output: + /
Input:
7+4 = 11
5-15 = 46
212-23 = -2121
Output: 1 -
Input:
4+8/2-9*1 = -5
99/3-13 = 20
1+2+3+4 = 10
4-3-2-1 = -6
Output: 2 4
Input:
18/18 = 1
98-8 = 90
55*88 = 4840
-5--15 = 10
Ouput: 5 8
Input:
9119 = 18
5-3 = 513
8*-9 = 152
13116/3 = -1
Output: 1 -
--
。例如1991 = 2, -/3 = 3
。(许多语言将它与减量运算符混淆。)
91 19
如果创建解决方案,则在其中添加一个空格,如果创建解决方案,则在其中9--9
不添加空格,9119
这9229
需要在创建测试用例时了解该解决方案。如果允许这样做,我可以仅在交换的字符之前添加一个空格,然后可以从测试用例中立即得出解决方案。
*
与/
之前+
和二进制-
?