2023年8月10日 星期四

8/10 每日一題(判定機器人移動後是否回到原點)

 有一個機器人(0, 0)從 2D 平面上的位置(原點)開始。給定其移動序列,判斷該機器人在完成其移動後是否結束於。(0, 0)

給您一個字符串moves,表示機器人的移動順序,其中moves[i]表示其移動。有效移動為(右)、(左)、(上)和(下)。ith'R''L''U''D'

true如果機器人完成所有動作後返回原點,則返回,false否則返回

注意:機器人“面向”的方式無關緊要。'R'總是使機器人向右移動一次,'L'總是使其向左移動一次,等等。此外,假設機器人每次移動的移動幅度相同。

 

示例1:

輸入: moves = "UD"
輸出: true
解釋:機器人向上移動一次,然後向下移動一次。所有的移動都具有相同的幅度,因此最終會回到開始的原點。因此,我們返回true。

示例2:

輸入: moves = "LL"
輸出: false
解釋:機器人向左移動兩次。它最終向原點左側移動了兩次。我們返回 false,因為它在移動結束時不在原點。

 

限制條件:

  • 1 <= moves.length <= 2 * 104
  • moves僅包含字符'U''D''L''R'


class Solution:
    def judgeCircle(self, moves: str) -> bool:
      moves_dict={'U':1,'D':-1,'L':-1,'R':1}
      x,y=0,0
      for i in moves:
        if i == 'U' or i =='D':
          y+=moves_dict[i]
        else:
          x+=moves_dict[i]

      if x == 0 and y ==0:
        return True
      else:
        return False
       


-------------------參考解答
class Solution:
    def judgeCircle(self, moves: str) -> bool:

        if len(moves) % 2 == 0: 
            if moves.count('U') == moves.count('D') and moves.count('L') == moves.count('R'):
                return True





標籤:

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁