(模拟) 657. 机器人能否返回原点 ——【Leetcode每日一题】

news/2023/11/28 18:04:44

❓ 657. 机器人能否返回原点

难度:简单

在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。

移动顺序由字符串 moves 表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。

如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false

注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。

示例 1:

输入: moves = “UD”
输出: true
解释:机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。因此,我们返回 true。

示例 2:

输入: moves = “LL”
输出: false
解释:机器人向左移动两次。它最终位于原点的左侧,距原点有两次 “移动” 的距离。我们返回 false,因为它在移动结束时没有返回原点。

提示:

  • 1 < = m o v e s . l e n g t h < = 2 ∗ 1 0 4 1 <= moves.length <= 2 * 10^4 1<=moves.length<=2104
  • moves 只包含字符 ‘U’, ‘D’, ‘L’ 和 ‘R

💡思路:

由于要回到原点,所以

  • 向上移动的次数要和向下移动次数相同;
  • 向右移动的次数要和向左移动次数相同。

定义两个变量 upright 记录对应的次数,如果最后都为 0 ,则说明回到了原点。

🍁代码:(C++、Java)

C++

class Solution {
public:bool judgeCircle(string moves) {if(moves.size() % 2 != 0) return false;int up = 0, right = 0;for(char c : moves){if(c == 'U') up++;else if(c == 'D') up--;else if(c == 'R') right++;else right--;}return up == 0 && right == 0;}
};

Java

class Solution {public boolean judgeCircle(String moves) {if(moves.length() % 2 != 0) return false;int up = 0, right = 0;for(char c : moves.toCharArray()){if(c == 'U') up++;else if(c == 'D') up--;else if(c == 'R') right++;else right--;}return up == 0 && right == 0;}
}

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( n ) O(n) O(n),其中 n 表示 moves 指令串的长度。我们只需要遍历一遍字符串即可。
  • 空间复杂度 O ( 1 ) O(1) O(1),我们只需要常数的空间来存放若干变量。

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我LeetCode主页 / CSDN—力扣专栏,每日更新!

注: 如有不足,欢迎指正!


http://www.ppmy.cn/news/689604.html

相关文章

NGINX 拦截指定请求并返回json数据

以api xx.xxx.com/xxx/aaa/api 为例&#xff1a; hosts将域名指向本地127.0.0.1 xx.xxx.com nginx构造下路径 location ~ ^/xxx/aaa/api {default_type application/json;return 200 {"status":"success","result":"nginx json"}; …

树莓派学习笔记12-安装使用PyZbar

树莓派学习笔记12-安装使用PyZbar 前言 通过树莓派外接USB摄像头&#xff0c;实现条形码的识别&#xff0c;并串口&#xff08;USB串口&#xff09;打印条形码的内容。 前期准备 硬件&#xff1a;树莓派4B 系统&#xff1a;Raspios-2021-03-04 编译器&#xff1a;Thonny 视…

Word中查找替换软回车键和回车键

在Word中使用搜索功能搜索“^p”组合字符串可以查找文档中的所有换行符&#xff08;回车键&#xff09;&#xff0c;使用“^l”&#xff08;英文输入状态下shift6与小写字符L的组合&#xff09;可以搜索所有的软回车符。使用替换功能就可以搜索替换二者。 转载于:https://www.c…

c语言解决回车键问题

转下链接 https://blog.csdn.net/qq_39540247/article/details/81353515

QQ如何在电脑上设置回车键发消息?

在电脑上使用微信的朋友都知道,发送消息时 直接 按 Enter 键就可以发送消息,但是使用QQ的时候&#xff0c;需要 Ctrl Enter 组合键发送消息,对于手指懒惰的我来说,或者说一种习惯,总觉得欠缺了一点什么,于是就有了这篇参考别人的所写的博客:

word文档中如何将软回车替换为硬回车

word文档中如何将软回车替换为硬回车 手动换行符&#xff0c;是Microsoft word中的一种换行符号&#xff0c;又叫软回车&#xff0c;是以一个直的向下的箭头&#xff08;↓&#xff09;表示的&#xff0c;通常出现在从网页复制到word的文字中。它在word中的代码是^l&#xff0…

以 回车键 为结束标志的输入

单个输入&#xff0c;无空格 int s0;char a[100];for(k0;k<100;k){cin>>a[k];}while (a[s]!0 && flag) 无空格(但是用gets函数是不安全的) char ch[maxsize];gets(ch);已知长度&#xff0c;以回车为结束符 int flag 1; char a[100];for(int i0; i < 100…

多余的回车键(Enter)

多余的回车键&#xff08;Enter&#xff09; 文章目录 多余的回车键&#xff08;Enter&#xff09;当我们需要读取键盘设备“标准输入流” 时两种简单的方法&#xff1a; 结论&#xff1a;最后&#xff1a; 当我们需要读取键盘设备“标准输入流” 时 两种简单的方法&#xff1…

回车与换行的由来

机械打印机时代: 在机械英文打字机上&#xff0c;有一个部件叫“字车”(Carriage)。“字车”这个东西可以想象一下电影中见过的打字机&#xff0c;有一个圆筒&#xff0c;上面卷了一张纸&#xff0c;因为字是从左往右打出来的&#xff0c;所以每打一个单词&#xff0c;这个卷着…

电脑返回,电脑返回上一步快捷键(ctrl加什么是返回上一步)

尊敬的老铁大家好&#xff0c;这一节课我们接着讲解photoshop软件&#xff0c;我们讲返回上一步操作&#xff0c;很多作品我们不小心设计错了&#xff0c;或者到最后有些地方不满意&#xff0c;还是其他问题&#xff0c;我们可以通过返回上一步的操作&#xff0c;来解决我们的问…

按回车键确定

$("#modal").keydown(function(e){var e e || event,keycode e.which || e.keyCode;if (keycode13) {$(".btn-primary").trigger("click");}}); 转载于:https://www.cnblogs.com/linsx/p/7297703.html

回车键和ESC键的处理

1. 在对话框程序中&#xff0c;按回车键或ESC键会退出当前对话框&#xff0c;原因是回车键相应了OnOK()函数&#xff0c;ESC键相应了OnCancel()函数。 如不想退出当前对话框则在上述两个函数里 void CDialog::OnOK() { // TODO: 在此添加专用代码和/或调用基类 //CDialog::O…

换行与回车----\n与\enter的区别

\n:换行&#xff0c;ASCII码10  n->newline &#xff1b;换到当前位置的下一行&#xff0c;不会回到行首&#xff1b; \r:回车&#xff0c;ASCII码13   r->return &#xff1b;回到当前行的行首&#xff0c;而不会换到下一行&#xff1b;//接着输出该行内容会被覆盖。…

回车符与换行符的区别

引用了博客&#xff1a;https://blog.csdn.net/fanwenbo/article/details/54848429 这里是我自己做的实验&#xff0c;如下&#xff1a; printf("A is here!");printf("I am here!");putchar(\r);printf("First input!");putchar(\n);printf(&qu…

电脑开机需要按回车键才进入系统

电脑开机要按回车键 电脑开机需要按回车键 为什么开机要按回车键 win7开机要按回车键 开机要按回车键 hp笔记本开机按回车键 开机按回车键 开机时要按回车键 开机蓝屏按回车键 原因&#xff1a;1. 系统要选择操作系统。 2. 不是直接从硬盘启动导致的。 解决方案一&#x…

Enter的使用计算机,电脑键盘上enter为什么叫回车键

在电脑键盘上有一个写有“Enter”字样并有一弯箭头的按键&#xff0c;被叫做“回车键”。其位置在引号键的右边&#xff0c;另一个位置在数字键盘的右下角。我们在平常使用电脑的时候&#xff0c;回车键的使用率很高&#xff0c;我们每天在无形中&#xff0c;用了很多次回车键&…

MySQL中的(ROW_FORMAT )

说明 InnoDB是MySQL中的一种存储引擎&#xff0c;在InnoDB中ROW_FORMAT也被用来定义表的行格式&#xff0c;可以通过以下方式设置&#xff1a; CREATE TABLE table_name (... ) ENGINE InnoDB ROW_FORMAT format_name;其中&#xff0c;format_name可以取以下选项&#xff1…

jact变频器故障代码_高淳JACT变频器,艾克特变频器ERR20编码器故障维修烟台市...

高淳JACT变频器&#xff0c;艾克特变频器ERR20编码器故障维修烟台市 JACT变频器项目主要是中大型的&#xff0c;用在自己承接的工程中。主要还是靠国家补贴资金进行研发。立马自动化科技上海有限公司于1997年创立于上海外高桥保税区。目前在上海浦东有自己的厂房。产品主要有自…

SIM7600怎么打电话,怎么电话通信

SIM7600CE-T -JT支持DTMF&#xff08;双音多频&#xff09;语音&#xff0c;需要正常的电话卡 打电话;确认卡&#xff0c;GSM附着&#xff1a;atd1771734xxxx; //拨打电话成功&#xff0c;注意AT指令不区分大小写&#xff0c;注意电话号码后面要加上分号“;”OKNO CARRIER …

【汇编】电话本

.386 .model flat,stdcall option casemap:noneinclude masm32rt.inc.data; 结构体 ;电话本-成员PHONE structm_name byte 8 dup(0) ;姓名m_phone byte 8 dup(0) ;电话PHONE ends; 常量 ;输入格式:名称 电话号码g_szScanFormat BYTE %s %s,0h;输入格式:名称g_szScanN…
最新文章