📅  最后修改于: 2023-12-03 15:06:29.422000             🧑  作者: Mango
在二维平面上,机器人从原点出发。机器人可以运动到左、右、上、下四个方向。给定一个字符串moves
表示机器人的运动路径,不含其他字符。判断机器人是否可以通过这些运动路径,精确地走Z步到达点(x, y)
。
我们可以用两个变量 $x_{now}, y_{now}$ 来维护当前的位置,用一个变量 money 维护现在还可以往哪个方向走。
对于字符串 moves 中的每个字符,如果是'L'或者‘U',我们就需要相应地将位置 $x$ 和 $y$ 减 1,如果是 'R' 或者 ‘D',就需要将位置 $x$ 和 $y$ 加 1。
最后判断位置 $(x_{now}, y_{now})$ 是否等于 $(x, y)$ 即可。
需要特别注意的是,如果 moves 中出现了不在 {‘L', 'R', 'U', 'D'} 中的字母,我们直接视为走错路。
def judge(moves: str, x: int, y: int) -> bool:
x_now, y_now = 0, 0
for i in moves:
if i == 'L':
x_now -= 1
elif i == 'R':
x_now += 1
elif i == 'U':
y_now += 1
elif i == 'D':
y_now -= 1
else:
return False
return x_now == x and y_now == y
print(judge('UURUURRR', 3, 1)) # True
print(judge('UU', 2, 2)) # False
print(judge('UDRL', 0, 0)) # True