[LeetCode] 657. 机器人能否返回原点

92 阅读1分钟

657. 机器人能否返回原点

Easy

思路

思路应该还是比较清晰的

  • 首先我们知道,向上走和向下走可以相消回到原点,向左走和向右走可以相消回到原点
  • 怎么走的先后顺序其实不用考虑,比如,之前走过'上',之后无论什么时候走'下'都能将他抵消掉
  • 用一个哈希表统计上下左右的数量,遍历走的路线进行添加或者抵消,最终得出结果

以上,尝试写一下代码,AC!

代码

python3

class Solution:
  def judgeCircle(self, moves: str) -> bool: 
    counter = {"R":0,"L":0,"U":0,"D":0}
    pairs = {"R":"L","L":"R","U":"D","D":"U"}
    for m in moves:
      if counter[pairs[m]] > 0:
        counter[pairs[m]] -= 1
      else:
        counter[m] += 1
    for k,v in counter.items():
      if v != 0:
        return False
    return True