zoukankan      html  css  js  c++  java
  • leetcode 657. Judge Route Circle

    Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place.

    The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R (Right), L(Left), U (Up) and D (down). The output should be true or false representing whether the robot makes a circle.

    Example 1:

    Input: "UD"
    Output: true
    

    Example 2:

    Input: "LL"
    Output: false


    解法1:
    class Solution(object):
        def judgeCircle(self, moves):
            """
            :type moves: str
            :rtype: bool
            out("")=True
            out("L" or "D" or "U" or "R") =False
            out("LR")=True
            out("RL")=True
            out("RLDU")=True
            out("LLR")=False
            """
            x = y = 0
            for m in moves:
                if m == "L":
                    x -= 1
                elif m == "R":
                    x += 1
                elif m == "U":
                    y += 1
                else:
                    y -= 1
            return x==0 and y==0

    用查找表更好:

    class Solution(object):
        def judgeCircle(self, moves):
            """
            :type moves: str
            :rtype: bool
            """
            x,y = 0,0
            offsets = {"U":[0,1], "D":[0,-1], "R":[1,0], "L":[-1,0]}
            for move in moves:
                x,y = x+offsets[move][0], y+offsets[move][1]
            return (x == 0) and (y == 0)

    解法2:

    def judgeCircle(self, moves):
        return moves.count('L') == moves.count('R') and moves.count('U') == moves.count('D')

    直接统计LR数目是否相等,同时UD数目是否相等。

    类似代码:

    def judgeCircle(self, moves):
        c = collections.Counter(moves)
        return c['L'] == c['R'] and c['U'] == c['D']

    因为:

    >>> import collections
    >>> collections.Counter("abca")
    Counter({'a': 2, 'b': 1, 'c': 1})

  • 相关阅读:
    flask_日期和时间
    使用SQLAlchemy对博客文章进行分页
    P2725 邮票 Stamps
    P2679 子串
    P3396 哈希冲突
    P1754 球迷购票问题
    P1504 积木城堡
    P1244 青蛙过河
    CSP-S 2019 考试分析
    2019.11.11 模拟赛 T2 乘积求和
  • 原文地址:https://www.cnblogs.com/bonelee/p/8480782.html
Copyright © 2011-2022 走看看