1041. Robot Bounded In Circle
本题题意:
一开始一个机器人站在了(0,0)上,面朝的方向是北,收到三个序列G,L,R。
G:直走
L:向左转
R:向右转
按序执行,永远重复。
返回TRUE,如果处在一个圈。
第一个卡住的点:
1.疑惑于机器人会不会不经过原点,然后还会出现一个圈?
不会。若在固定路线转圈,肯定是重复了若干次,回到了原点。否则路线是不能固定的。
idea:
1.如果第一次执行完一串指令后,就在原点,则一定是固定路线。
2.如果执行完一串指令后,不在原点,新的方向是dir,则有下面的结论:
dir不是北方,就一定可以回到原点。
证明:
如果dir指向南方,则下一次执行完,就一定回到原点(方向180度)
如果dir指向东方,则四次执行完,就一定回到原点(方向90度)
更简单的讲,机器人重复四次执行,判断是否在原点就可以。
第一次代码:
def isRobotBounded(self, instructions: str) -> bool:a = instructions* 4d = 1"""12 43"""r = [0,1,2,3,4]p = [0,0]for i in a:if i == 'L':d = r[d + 1 if d + 1 != 5 else 1]elif i == 'R':d = r[d - 1 if d - 1 != 0 else 4]else:if d == 1:p[1] += 1 #y + 1elif d == 2: p[0] -= 1 #x - 1elif d == 3:p[1] -= 1else :p[0] += 1return p == [0,0]
第二次代码
def isRobotBounded(self, instructions: str) -> bool:a = instructions* 4d = 0"""03 12i = (i + 1) % 4 will turn righti = (i + 3) % 4 will turn left"""rec = [[0,1],[1,0],[0,-1],[-1,0]]x, y = 0, 0for i in a:if i == 'L': d = (d + 3) % 4elif i == 'R': d = (d + 1) % 4else: x, y = x + rec[d][0], y + rec[d][1]return x == 0 and y ==0
总的来说,就是菜。。 照着大神代码看- - - - - -
转载于:https://www.cnblogs.com/whyaza/p/10855381.html
1041. Robot Bounded In Circle相关推荐
- LeetCode 1041. Robot Bounded In Circle【字符串,模拟】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12.由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止:由于LeetCode还在不断地创建新 ...
- LeetCode github集合,附CMU大神整理笔记
Github LeetCode集合 本人所有做过的题目都写在一个java项目中,同步到github中了,算是见证自己的进步.github目前同步的题目是2020-09-17日之后写的题.之前写过的题会 ...
- 2019中国移动互联网广告全鉴
互联网行业发展日新月异,互联网广告作为"伴生物",也随行业巨头.行业风口流转和追随. 其中最重要的转折莫过于,在4G大范围普及,用户注意力逐渐转移到手机.平板电脑等移动设备的背景下 ...
- LeetCode 657. Judge Route Circle
题目: Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this rob ...
- [LeetCode]657.Judge Route Circle
题目描述: Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this r ...
- 【Lintcode】1104. Judge Route Circle
题目地址: https://www.lintcode.com/problem/judge-route-circle/description 在平面直角坐标系里,以方向给一个出发点在(0,0)(0,0) ...
- LeetCode 简单算法题
使用Nodejs 抓取的LeetCode 简单算法题 一步一步来,先攻破所有简单的题目,有些题目不适合使用JS解决,请自行斟酌 Letcode 简单题汇总 104. Maximum Depth of ...
- ROS小车应用:控制机器人做圆周运动
一.首先创建一个功能包 跳转到src目录下 catkin_create_pkg 功能包名字 进入目录,创建一个script目录(主要使用py来写) 然后创建一个py文件,取名draw_circle.p ...
- java 对数取反_GitHub - giraffegzy/ex_java: java练习题(来源各个地方and难度随机)
java基础练习题 1.检查是否为素数(素数:该数除了1和它本身以外不再有其他的因数的数被称为素数.) 2.打印出1-100的数,每十个数为一组. 3.接收一个层数值n,打印一个有n层的直角三角形,并 ...
最新文章
- 彻底搞懂浏览器Event-loop
- Factom(公证通)--基于区块链的存证系统
- 如何在SAP Spartacus category 页面里拿到当前的category信息
- Codeforces Round #169 (Div. 2)
- 剑指offer.数值的整数次方
- android自定义控件动态,GitHub - itrenjunhua/WaveView: Android自定义控件实现动态百分比水波纹效果...
- sparklyr 1.0发布,有哪些新功能?
- 电路分析实验一 Pspice编写电路程序并运行
- java如何运行_如何运行java程序
- java 500错误页面模板_模板详细错误
- [远心镜头] 物方远心、像方远心和双远心镜头的区别
- python PIL生成gif帧率问题
- 前端每日实战:66# 视频演示如何用纯 CSS 创作一台咖啡机
- 人工智能与大数据就业前景_人工智能就业方向及发展前景
- Nature Microbiology | 王璋/陈荣昌/周宏伟-慢阻肺病呼吸道菌群-宿主互作机制
- SQLiteSpy执行Sql语句提示No such collation sequence : PhoneBook
- 关于Angular Js动态表格合并单元格的一点见解
- 360wifi linux ad hoc,Ad Hoc模式无线局域网搭建
- 六行python代码的爱心曲线公式_六行python代码的爱心曲线-Go语言中文社区
- Apple Watch必备!KUNER充电表带登场