leetcode 1041——困于环中的机器人
描述:
在无限的平面上,机器人最初位于 (0, 0)
处,面朝北方。机器人可以接受下列三条指令之一:
"G"
:直走 1 个单位"L"
:左转 90 度"R"
:右转 90 度
机器人按顺序执行指令 instructions
,并一直重复它们。
只有在平面中存在环使得机器人永远无法离开时,返回 true
。否则,返回 false
。
示例 1:
- 输入:"GGLLGG"
- 输出:true
- 解释:
- 机器人从 (0,0) 移动到 (0,2),转 180 度,然后回到 (0,0)。
- 重复这些指令,机器人将保持在以原点为中心,2 为半径的环中进行移动。
示例 2:
- 输入:"GG"
- 输出:false
- 解释:
- 机器人无限向北移动。
示例 3:
- 输入:"GL"
- 输出:true
- 解释:
- 机器人按 (0, 0) -> (0, 1) -> (-1, 1) -> (-1, 0) -> (0, 0) -> ... 进行移动。
- 思路:循环四次后能回到原点(0,0)的符合
C++:
- class Solution {
- public:
- bool isRobotBounded(string instructions) {
- int a=,b=,c=;//(a,b)表示坐标,c表示方向
- instructions+=instructions+instructions+instructions;
- for(int i=;i<instructions.length();i++){
- if(instructions[i]=='G'){
- if(c==) b++;
- else if(c==) a--;
- else if(c==) b--;
- else a++;
- }else if(instructions[i]=='L'){
- if(c==) c=;
- else c++;
- }else if(instructions[i]=='R'){
- if(c==) c=;
- else c--;
- }
- }
- return a==&&b==;
- }
- };
- python:
- class Solution:
- def isRobotBounded(self, instructions: str) -> bool:
- a=0
- b=0
- c=0
- instructions+=instructions+instructions+instructions
- for i in instructions:
- if i=='G':
- if c==0: b+=1
- elif c==1: a-=1
- elif c==2: b-=1
- else: a+=1
- elif i=='L':
- if c==3: c=0
- else: c+=1
- elif i=='R':
- if c==0: c=3
- else: c-=1
- return a==0 and b==0
leetcode 1041——困于环中的机器人的更多相关文章
- leetcode 1041. 困于环中的机器人
题目地址 : https://leetcode-cn.com/problems/robot-bounded-in-circle/ 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以 ...
- LeetCode 1041. Robot Bounded In Circle (困于环中的机器人)
题目标签:Math 题目让我们判断机器人是否是一直在走一个圈. 当我们把 instructions 走完一遍时候: 1. 如果机器人回到了原点,那么它是在走一个圈. 2. 如果机器人的方向没有改变,那 ...
- [LeetCode] 874. Walking Robot Simulation 走路机器人仿真
A robot on an infinite grid starts at point (0, 0) and faces north. The robot can receive one of th ...
- [LeetCode] 489. Robot Room Cleaner 扫地机器人
Given a robot cleaner in a room modeled as a grid. Each cell in the grid can be empty or blocked. Th ...
- LeetCode #657. Robot Return to Origin 机器人能否返回原点
https://leetcode-cn.com/problems/robot-return-to-origin/ 设置 flagUD 记录机器人相对于原点在纵向上的最终位置 flagRL 记录机器人相 ...
- Python解答力扣网站题库简单版----第三讲
1041. 困于环中的机器人 题库链接: 1041. 困于环中的机器人. 题干 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以接受下列三条指令之一: "G" ...
- Leetcode 第136场周赛解题报告
周日的比赛的时候正在外面办事,没有参加.赛后看了下题目,几道题除了表面要考的内容,还是有些能发散扩展的地方. 做题目不是最终目的,通过做题发现知识盲区,去研究学习,才能不断提高. 理论和实际是有关系的 ...
- 剑指offer刷题总结
★ 二维数组的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否 ...
- 6专题总结-动态规划dynamic programming
专题6--动态规划 1.动态规划基础知识 什么情况下可能是动态规划?满足下面三个条件之一:1. Maximum/Minimum -- 最大最小,最长,最短:写程序一般有max/min.2. Yes/N ...
随机推荐
- php中的list()
list()在php中上一个语言结构,并不是一个函数.类似array(),不过array()这个东西我们现在一般很少使用了,因为从php5.4版本开始,我们会直接使用[]来定义数组. 那么,list( ...
- 68、Schema的相关类
public class SObjectSchema { public void testSchema(){ //获取SObject的token //1.先获取所有token,然后通过key获取需要的 ...
- Nginx网络架构实战学习笔记(二):编译PHP并与nginx整合、安装ecshop、商城url重写实战
文章目录 编译PHP并与nginx整合 安装ecshop(这是一个多年前php的项目貌似,作为java开发的我暂时不去关心) 商城url重写实战 编译PHP并与nginx整合 安装mysql yum ...
- Django 模型中的CRUD
一.通过 ORM 向 DB 中增加数据 1.Entry.objects.create(属性=值,属性=值) Entry:具体要操作的Model类 ex: Author.objects.create(n ...
- 2.3 Nginx服务的启停控制
在Linux平台下,控制Nginx服务的启停有多种方法 2.3.1 Nginx服务的信号控制 在Nginx服务的启停办法中,有一类是通过信号机制来实现的,Nginx服务器的信号控制如下: Nginx服 ...
- ng-repeat如何限制循环次数
如果items 里有20条数据,如果你要循环 items, 只想循环5条 你可以这么做: ng-repeat="item in items|limitTo:5"
- 关于软件IntelliJ IDEA的使用技巧(三)
二,IntelliJ IDEA的工具栏介绍 2,IntelliJ IDEA菜单栏 (9)Tools工具 ✌1.Tasks & Contexts: ✌2.Generate JavaDoc: ✌3 ...
- MySQL-技术专区-mysql数据库权限管理
登入root账户 mysql -u root -p 查看所有用户 select host,user from mysql.user; 查看某个用户的权限: show grants for user ...
- BUUCTF PWN部分题目wp
pwn好难啊 PWN 1,连上就有flag的pwnnc buuoj.cn 6000得到flag 2,RIP覆盖一下用ida分析一下,发现已有了system,只需覆盖RIP为fun()的地址,用peda ...
- 将Eclipse项目转换成AndroidStudio项目过程中遇到的问题以及解决方法
将Eclipse项目转换成AndroidStudio项目也不是第一次了,昨天转的时候遇到几个问题: 首先将项目导入androidstudio,导完后报错: 问题一: Error:java.util.c ...