您最终在代码中有很多很长,看起来很无聊的条件:
if flag == 1:
while have != needed:
if type == 7:
这些可以转换为它们更可爱的<3
条件副本:
if abs(flag - 1) + 2 <3:
while 3 - abs(have - needed) <3:
if 2 + abs(type - 7) <3:
任务
您的任务是带条件并使其成为条件<3
。唯一重要的间距是<
和之间没有间距3
。
条件语句将是要么分隔两个表达式==
,!=
,>
,<
,>=
或<=
。
表达式将仅包含加,减,一元否定(-something
),其中每个变量或数字前面有一个+
或-
一个(除了第一个没有变量或没有变量或数字-
之前)。
数字将为[0-9]+
,变量将为[a-z]+
。如果需要使用答案|x|
(的绝对值x
),请使用该abs()
函数。您可以假设所有变量都是整数,并且输入中的所有数字常量均小于1000。
输出并没有需要在它的简单形式。它确实需要像上面的条件表达式,这意味着它仅是两个表达式,以一个条件符号分隔,但是它也可以使用abs
函数,将有效表达式括起来,然后就有效性而言就像变量一样。
如果输入没有任何变量值的输出,则输出始终为false但仍以表示的条件<3
。
挑战的一部分是弄清楚如何做到这一点,但以下是上述步骤have != needed
:
have != needed
have - needed != 0
abs(have - needed) > 0
-abs(have - needed) < 0
3 - abs(have - needed) <3
计分
这是代码高尔夫球,因此以字节为单位的最短有效代码获胜。
测试用例
(请注意,这些输出不是唯一的输出,但是我尝试简化它们。)
flag == 1
abs(flag - 1) + 2 <3
have != needed
3 - abs(have - needed) <3
type == 7
2 + abs(type - 7) <3
x > y
3 - x + y <3
x + 5 < -y
x + 8 + y <3
x + 6 <= y
x + 8 - y <3
-x >= y + 3
x + y + 5 <3
x < x
3 <3
# Unsimplified; both would be valid outputs.
x - x + 3 <3