AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

LeetCode 657. Robot Return to Origin    原题链接    简单

作者: 作者的头像   wzc1995 ,  2018-08-20 09:06:34 ,  所有人可见 ,  阅读 1115


2


题目描述

初始位置 (0, 0) 处有一个机器人。给出它的一系列动作,判断这个机器人的移动路线是否形成一个圆圈,换言之就是判断它是否会移回到原来的位置。

移动顺序由一个字符串表示。每一个动作都是由一个字符来表示的。机器人有效的动作有 R(右),L(左),U(上)和 D(下)。输出应为 true 或 false,表示机器人移动路线是否成圈。

样例

输入: "UD"
输出: true
输入: "LL"
输出: false

算法

(线性遍历) $O(n)$
  1. 用两个变量 w 和 h,遇到 L 时 w 加 1;遇到 R 时 w 减 1;同理,遇到 U 时 h 加 1,遇到 D 时 h 减 1。
  2. 最后如果 w 和 h 都是 0,则返回 true;否则返回 false;

时间复杂度

  • 扫描一遍字符串,故时间复杂度为 $O(n)$。

C++ 代码

class Solution {
public:
    bool judgeCircle(string moves) {
        int w = 0, h = 0;
        for (int i = 0; i < moves.length(); i++)
            if (moves[i] == 'L')
                w++;
            else if (moves[i] == 'R')
                w--;
            else if (moves[i] == 'U')
                h++;
            else
                h--;
        return w == 0 && h == 0;
    }
};

1 评论


用户头像
extrovert   2019-03-19 02:51         踩      回复

原题链接更新
https://leetcode.com/problems/robot-return-to-origin/


App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息