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})

  • 相关阅读:
    配置Express中间件
    C#字符串中特殊字符的转义
    JSON.NET 简单的使用
    ASP.NET 解决URL中文乱码的解决
    ASP.NET MVC 笔记
    VS中一些不常用的快捷键
    Visual Studio 中突出显示的引用
    Silverlight从客户端上传文件到服务器
    silverlight打开和保存文件
    sliverlight资源文件的URI调用
  • 原文地址:https://www.cnblogs.com/bonelee/p/8480782.html
Copyright © 2011-2022 走看看