我的两个孩子喜欢玩以下玩具:
可以触摸内部形状的着色区域,然后乌龟会照亮该区域并播放声音或说出颜色或内部形状的名称。中间按钮更改模式。有一种模式,其中的区域在触摸时会弹奏不同的音符,并带有一种扭曲:如果孩子顺时针触摸三个连续的区域,则会播放特殊的旋律1。如果将三个连续触摸的区域逆时针放置,则会播放特殊的旋律2。
挑战
让我们模拟玩具的内部逻辑。给定一个带有3次按压的字符串,如果这3次按压是针对连续区域(顺时针或逆时针)的,则返回两个不同的连贯值;如果不是连续的,则返回第三个不同的值。
细节
- 输入区域将分别用一个字符命名,该字符可以是它们的颜色:
ROYGB
红色,橙色,黄色,绿色和蓝色。或它们的形状:HSRTC
用于心脏,正方形,星形(R
),三角形和圆形。大小写无关紧要,您可以选择只使用大写还是小写来处理输入和输出。 - 该程序将通过三次按下来接收字符串(或char数组或任何等效形式)。例子(使用颜色): ,
RBO
,GYO
,BBR
,,YRG
...YGB
ORB
- 程序将输出三个截然不同的连贯值,以表示三种可能的结果:如果组合未触发特殊旋律,则为第一个值;如果组合触发顺时针特殊旋律,则为第二个值;如果组合触发了特殊旋律,则为第三个值。逆时针特殊旋律。例如:
0
对于没有特殊组合的情况,1
对于由顺时针组合-1
触发的旋律和对于逆时针组合触发的旋律。 - 您无需担心处理错误的输入。
测试用例
Input Output // Input based on colors
--------------
RBO 0 // No special combination
GYO -1 // Counterclockwise melody triggered
BBR 0 // No special combination
YRG 0 // No special combination
YGB 1 // Clockwise melody triggered
ORB -1 // Counterclockwise melody triggered
OOO 0 // No special combination
BRO 1 // Clockwise melody triggered
这是代码高尔夫球,因此每种语言的最短代码可能会胜出!
[0,0]
,[1,0]
,[0,1]
允许作为输出?我看到Mathematica答案正在执行此操作,它将在05AB1E答案中节省3个字节。