天天看點

「判斷路線成圈」python之leetcode刷題|005

題目

初始位置 (0, 0) 處有一個機器人。給出它的一系列動作,判斷這個機器人的移動路線是否形成一個圓圈,換言之就是判斷它是否會移回到原來的位置。
移動順序由一個字元串表示。每一個動作都是由一個字元來表示的。機器人有效的動作有 R(右),L(左),U(上)和 D(下)。輸出應為 true 或 false,表示機器人移動路線是否成圈。
示例 1:

輸入: "UD"

輸出: true

示例 2:

輸入: "LL"

輸出: false

解答

判斷上下,和左右分别相加為零不就行了嗎

class Solution(object):
    def judgeCircle(self, moves):
        """
        :type moves: str
        :rtype: bool
        """
        x = 0
        y = 0
        for i in moves:
            if i == 'U':
                x += 1
            elif i == 'D':
                x -= 1
            elif i == 'L':
                y += 1
            else:
                y -= 1

        return x == y == 0
           

當然這種方法肯定是最笨的方法,看一下結果,打敗36.72%的送出者,看一下網友代碼:

class Solution(object):
    def judgeCircle(self, moves):
        """
        :type moves: str
        :rtype: bool
        """
        return moves.count('U') == moves.count('D') and moves.count('L') == moves.count('R')
           

一行解決,不得不說真厲害。