LeetCode简单题之机器人能否返回原点
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之机器人能否返回原点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
在二維平面上,有一個機器人從原點 (0, 0) 開始。給出它的移動順序,判斷這個機器人在完成移動后是否在 (0, 0) 處結束。
移動順序由字符串表示。字符 move[i] 表示其第 i 次移動。機器人的有效動作有 R(右),L(左),U(上)和 D(下)。如果機器人在完成所有動作后返回原點,則返回 true。否則,返回 false。
注意:機器人“面朝”的方向無關緊要。 “R” 將始終使機器人向右移動一次,“L” 將始終向左移動等。此外,假設每次移動機器人的移動幅度相同。
示例 1:
輸入: “UD”
輸出: true
解釋:機器人向上移動一次,然后向下移動一次。所有動作都具有相同的幅度,因此它最終回到它開始的原點。因此,我們返回 true。
示例 2:
輸入: “LL”
輸出: false
解釋:機器人向左移動兩次。它最終位于原點的左側,距原點有兩次 “移動” 的距離。我們返回 false,因為它在移動結束時沒有返回原點。
來源:力扣(LeetCode)
解題思路
??嘗試想象一個笛卡爾坐標系,機器人初始的時候位于原點,然后我們遍歷它的操作集合,模擬它的運動如果遍歷結束后,判斷機器人是否回到了坐標原點。
class Solution:def judgeCircle(self, moves: str) -> bool:location=[0,0]for i in moves:if i=='U':location[1]+=1if i=='R':location[0]+=1if i=='D':location[1]-=1if i=='L':location[0]-=1return location==[0,0]
??通過簡單的模擬不難發現,其實機器人能否返回原點取決于它的操作集里相反的操作是否成對存在。
class Solution:def judgeCircle(self, moves: str) -> bool:return moves.count('U')==moves.count('D') and moves.count('R')==moves.count('L')
總結
以上是生活随笔為你收集整理的LeetCode简单题之机器人能否返回原点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之图片平滑器
- 下一篇: LeetCode简单题之验证外星语词典