

可以使用计数法来解决这个问题。由于机器人可以向右(R)、左(L)、上(U)、下(D)移动,我们可以分别统计 R 和 L 的次数是否相等,以及 U 和 D 的次数是否相等。如果两者都相等,则说明机器人回到了原点,返回 true,否则返回 false。
代码实现(Python):
def judgeCircle(moves: str) -> bool:
return moves.count('R') == moves.count('L') and moves.count('U') == moves.count('D')
# 测试用例
print(judgeCircle("UD")) # True
print(judgeCircle("LL")) # False
print(judgeCircle("RRDD")) # False
print(judgeCircle("LDRRLRUULR")) # True
复杂度分析:
-
count('R')、count('L')、count('U')和count('D')都是 O(n) 复杂度,因此整体时间复杂度为 O(n),其中n是moves的长度。 -
只使用了几个变量,因此空间复杂度为 O(1)。
这种方法简单直观,适用于大多数场景。
300

被折叠的 条评论
为什么被折叠?



