ner*_*Guy 6 python dictionary data-structures python-3.x
题:
有一个机器人从位置 (0, 0)(原点)开始,位于 2D 平面上。给定它的一系列动作,判断这个机器人在完成它的动作后是否在 (0, 0) 处结束。
移动序列用一个字符串表示,字符moves[i]代表它的第i个移动。有效的移动是 R(右)、L(左)、U(上)和 D(下)。如果机器人在完成所有移动后返回原点,则返回 true。否则,返回false。
注意:机器人“面对”的方式无关紧要。"R" 将始终使机器人向右移动一次,"L" 将始终使其向左移动,等等。此外,假设机器人每次移动的移动幅度都相同。
输入:移动 = "UD" 输出:真 说明:机器人向上移动一次,然后向下移动一次。 所有移动都具有相同的幅度,因此它最终在它开始的原点处结束。 因此,我们返回true。
我有以下解决方案,对于序列 = 似乎是错误的"UD",它应该返回 True。有人可以帮助我了解我在这里做错了什么以及如何解决吗?
class Solution:
class Mover:
def __init__(self, x, y):
self.x, self.y = x, y
def new_pos(self, x, y):
return x + self.x, y + self.y
WALKS = dict(U=Mover(0, -1), D=Mover(0, 1),
L=Mover(-1, 0), R=Mover(1, 0))
def judge_circle(self, moves):
x = y = 0
for id in moves:
x, y = self.WALKS[id].new_pos(x, y)
return x == y == 0
def move_sequences(self,sequences):
for moves in sequences:
return (solution.judge_circle(moves))
if __name__ == "__main__":
solution = Solution()
sequences = "UD"
print(solution.move_sequences(sequences))
Run Code Online (Sandbox Code Playgroud)