专栏首页小樱的经验随笔LeetCode 657. Robot Return to Origin

LeetCode 657. Robot Return to Origin

There is a robot starting at position (0, 0), the origin, on a 2D plane. Given a sequence of its moves, judge if this robot ends up at (0, 0) after it completes its moves.

The move sequence is represented by a string, and the character moves[i] represents its ith move. Valid moves are R (right), L (left), U (up), and D (down). If the robot returns to the origin after it finishes all of its moves, return true. Otherwise, return false.

Note: The way that the robot is "facing" is irrelevant. "R" will always make the robot move to the right once, "L" will always make it move left, etc. Also, assume that the magnitude of the robot's movement is the same for each move.

Example 1:

Input: "UD"
Output: true 
Explanation: The robot moves up once, and then down once. All moves have the same magnitude, so it ended up at the origin where it started. Therefore, we return true.

Example 2:

Input: "LL"
Output: false
Explanation: The robot moves left twice. It ends up two "moves" to the left of the origin. We return false because it is not at the origin at the end of its moves.

题目描述:大概意思是求一个点经过若干次移动能否回到原来的位置。

题目分析:我们只需要去判断两个条件:

  • 向左移动的次数和向右移动的次数是否相等
  • 向上移动的次数是否和向下移动的次数相等

于是我们只需要计算出向左、向右、向上、向下分别走了多少步就行了。

python 代码:

class Solution(object):
    def judgeCircle(self, moves):
        """
        :type moves: str
        :rtype: bool
        """
        moves_length = len(moves)
        L_count = 0
        R_count = 0
        U_count = 0
        D_count = 0
        for i in range(moves_length):
            if moves[i] == 'L':
                L_count = L_count + 1
            elif moves[i] == 'R':
                R_count = R_count + 1
            elif moves[i] == 'U':
                U_count = U_count + 1
            elif moves[i] == 'D':
                D_count = D_count + 1
        
        if L_count == R_count and U_count == D_count:
            return True
        else:
            return False

C++ 代码:

class Solution {
public:
    bool judgeCircle(string moves) {
        int moves_length = moves.length();
        int L_count = 0;
        int R_count = 0;
        int U_count = 0;
        int D_count = 0;
        for(int i = 0; i < moves_length; i++){
            if(moves[i] == 'L'){
                L_count++;
            }
            else if(moves[i] == 'R'){
                R_count++;
            }
            else if(moves[i] == 'U'){
                U_count++;
            }
            else if(moves[i] == 'D'){
                D_count++;
            }
        }
        if(L_count == R_count && U_count == D_count){
            return true;
        }
        return false;
    }
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Codeforces Round #345 (Div. 2)【A.模拟,B,暴力,C,STL,容斥原理】

    A. Joysticks time limit per test:1 second memory limit per test:256 megabytes in...

    Angel_Kitty
  • Codeforces 810C Do you want a date?(数学,前缀和)

    C. Do you want a date? time limit per test:2 seconds memory limit per test:256 m...

    Angel_Kitty
  • HDU 1013 Digital Roots【字符串,水】

    Digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3276...

    Angel_Kitty
  • 姿势指导可见部分匹配的被遮挡人ReID (CS.CV)

    由于外观因各种障碍而变化很大,特别是在人群场景中,对人员进行重新识别是一项艰巨的任务。为了解决这个问题,我们提出了一种姿势指导的可见零件匹配(PVPM)方法,该...

    蔡小雪7100294
  • 【PAT乙级】锤子剪刀布

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • MySQL查询---COUNT函数

    上一篇谈到了我们日常开发中经常需要用到的分页,在业务数据量不多的情况下,我们直接用limit指定偏移量就可以满足我们业务需求了,但是数据量大的时候使用limit...

    逆月翎
  • python 计算一个文件(文本)的行数

    简单、
  • MySQL count()函数及其优化count(1),count(*),count(字段)区别

    JavaEdge
  • 测试开发进阶(三十九)

    zx钟
  • count(1)、count(*) 与 count (列名) 的执行区别

    当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!

    程序员小强

扫码关注云+社区

领取腾讯云代金券