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

sixkery發表於2018-08-11

題目

初始位置 (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`)

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


相關文章