[Swift]LeetCode1041. 困于环中的机器人 | Robot Bounded In Circle

On an infinite plane, a robot initially stands at (0, 0) and faces north.  The robot can receive one of three instructions:

  • "G": go straight 1 unit;
  • "L": turn 90 degrees to the left;
  • "R": turn 90 degress to the right.

The robot performs the instructions given in order, and repeats them forever.

Return true if and only if there exists a circle in the plane such that the robot never leaves the circle.

Example 1:

Input: "GGLLGG"
Output: true
Explanation:
The robot moves from (0,0) to (0,2), turns 180 degrees, and then returns to (0,0).
When repeating these instructions, the robot remains in the circle of radius 2 centered at the origin.

Example 2:

Input: "GG"
Output: false
Explanation:
The robot moves north indefinetely.

Example 3:

Input: "GL"
Output: true
Explanation:
The robot moves from (0, 0) -> (0, 1) -> (-1, 1) -> (-1, 0) -> (0, 0) -> ...

Note:

  1. 1 <= instructions.length <= 100
  2. instructions[i] is in {‘G‘, ‘L‘, ‘R‘

在无限的平面上,机器人最初位于 (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) -> ... 进行移动。

提示:

  1. 1 <= instructions.length <= 100
  2. instructions[i] 在 {‘G‘, ‘L‘, ‘R‘} 中


Runtime: 8 ms

Memory Usage: 20.6 MB

 1 class Solution {
 2     func isRobotBounded(_ instructions: String) -> Bool {
 3         var arr:[Character] = Array(instructions)
 4         var left:Int = 0
 5         var right:Int = 0
 6         for c in arr
 7         {
 8             if c == "L"
 9             {
10                 left += 1
11
12             }
13             if c == "R"
14             {
15                 right += 1
16             }
17         }
18         if left == 0 && right == 0
19         {
20             return false
21         }
22         if left != 0 && right == left
23         {
24             return false
25         }
26         return true
27     }
28 }

原文地址:https://www.cnblogs.com/strengthen/p/10851797.html

时间: 2024-11-23 10:43:54

[Swift]LeetCode1041. 困于环中的机器人 | Robot Bounded In Circle的相关文章

leetcode 1041. 困于环中的机器人

题目地址 : https://leetcode-cn.com/problems/robot-bounded-in-circle/ 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以接受下列三条指令之一: "G":直走 1 个单位"L":左转 90 度"R":右转 90 度机器人按顺序执行指令 instructions,并一直重复它们. 只有在平面中存在环使得机器人永远无法离开时,返回 true.否则,返回 false. 示例

Leetcode-5055 Robot Bounded In Circle(困于环中的机器人)

1 #define _for(i,a,b) for(int i = (a);i < b;i ++) 2 int dx[] = {-1,0,1,0}; 3 int dy[] = {0,1,0,-1}; 4 class Solution 5 { 6 public: 7 bool isRobotBounded(string instructions) 8 { 9 int fang = 0; 10 int x = 0,y = 0; 11 int T = 200; 12 while(T--) 13 { 1

【BZOJ】【3205】【APIO2013】机器人robot

斯坦纳树 好神啊……Orz zyf && PoPoQQQ 为啥跟斯坦纳树扯上关系了?我想是因为每个点(robot)都沿着树边汇到根的时候就全部合起来了吧= =这个好像和裸的斯坦纳树不太一样,那个是无向最小生成树,这个是有向图…… 引用题解: 令f[l][r][i][j]表示在点(i,j)将编号在[l,r]区间内的机器人全部合并的最小推动次数 则有动规方程组: f[l][r][i][j]=min{f[l][r][_i][_j]+1} ( (_i,_j)->(i,j) ) f[l][r]

LeetCode第136场周赛

菜鸡我只做出了一道... 5055. 困于环中的机器人 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以接受下列三条指令之一: "G":直走 1 个单位 "L":左转 90 度 "R":右转 90 度 机器人按顺序执行指令 instructions,并一直重复它们. 只有在平面中存在环使得机器人永远无法离开时,返回 true.否则,返回 false. 提示: 1 <= instructions.length <=

一个控制台程序,模拟机器人对话

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; namespace RobotTest { class Program { static void Main(string[] args) { 机器人 robot = new 机器人(); r

英国机器人拆除一废电厂- 中国机器人信息网

7月21日,英国牛津郡的一座废弃电厂被机器人成功拆除. 在今年2月份,该废弃电厂在拆除过程中发生了伤亡事件,其中四人当场死亡.为避免悲剧再次发生,拆除团队改用机器人进行拆除作业.为实现0危险拆除,他们利用爱尔兰公司Reamda打造的两个机器人--Robot Reacher和R-Evolve对现场展开勘察.拍照.录像,并使用3D扫描仪研究电厂6个立柱的结构.之后,通过得到的数据模拟立柱结构并指定适当的拆除方案. 等到正式进入拆除阶段之后,团队通过远程操控车(ROV)安置3种不同的--C形炸弹.切割

机器人运维时代已来临?这是真的......

ChatOps is a collaboration model that connects people, tools, process, and automation into a transparent workflow. ChatOps提供了一种协作模式,人.工具.流程.自动化处在一个透明的工作环境中. --Sean Regan, Atlassian 随着"ITIL+DevOps双态运维"理念的提出和实践,另一款颠覆性的高效协同运维产品--UYUNChatOps正式推出,完整的

java使用Robot类在eclipse上实现自动编写代码

运行时,把输入法关掉,切换成系统自带的输入法即可: 第二个类是自定义的键值Map集合,主要是为了方便输入字符串,有需要的可以自行添加: 主要的代码如下,会创建一个名称为Automaton.java的类,并输出"Hellow Word,I am a skynet" import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import java.io.IOException;

2014-5-10 NOIP模拟赛 by coolyangzc

Problem 1 机器人(robot.cpp/c/pas) [题目描述] 早苗入手了最新的Gundam模型.最新款自然有着与以往不同的功能,那就是它能够自动行走,厉害吧. 早苗的新模型可以按照输入的命令进行移动,命令包括‘E’.‘S’.‘W’.‘N’四种,分别对应东南西北.执行某个命令时,它会向对应方向移动一个单位.作为新型机器人,它可以执行命令串.对于输入的命令串,每一秒它会按命令行动一次.执行完命令串的最后一个命令后,会自动从头开始循环.在0时刻时机器人位于(0,0).求T秒后机器人所在位