当前位置: 首页 > news >正文

OJ练习第70题——困于环中的机器人

困于环中的机器人

力扣链接:1041. 困于环中的机器人

题目描述

在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意:

北方向 是y轴的正方向。
南方向 是y轴的负方向。
东方向 是x轴的正方向。
西方向 是x轴的负方向。
机器人可以接受下列三条指令之一:

“G”:直走 1 个单位
“L”:左转 90 度
“R”:右转 90 度
机器人按顺序执行指令 instructions,并一直重复它们。

只有在平面中存在环使得机器人永远无法离开时,返回 true。否则,返回 false。

示例

示例 1:

输入:instructions = “GGLLGG”
输出:true
解释:机器人最初在(0,0)处,面向北方。
“G”:移动一步。位置:(0,1)方向:北。
“G”:移动一步。位置:(0,2).方向:北。
“L”:逆时针旋转90度。位置:(0,2).方向:西。
“L”:逆时针旋转90度。位置:(0,2)方向:南。
“G”:移动一步。位置:(0,1)方向:南。
“G”:移动一步。位置:(0,0)方向:南。
重复指令,机器人进入循环:(0,0)——>(0,1)——>(0,2)——>(0,1)——>(0,0)。
在此基础上,我们返回true。

示例 2:

输入:instructions = “GG”
输出:false
解释:机器人最初在(0,0)处,面向北方。
“G”:移动一步。位置:(0,1)方向:北。
“G”:移动一步。位置:(0,2).方向:北。
重复这些指示,继续朝北前进,不会进入循环。
在此基础上,返回false。

思路

由于已知重复顺序执行指令,所以如果机器人能够回到原点的的话,只会存在三种情况:1、顺序执行一次就回到原点。2、顺序执行两次回到原点。3、顺序执行四次回到原点。否则,机器人将永远不能回到原点。所以就同意都按照四次来。

代码

class Solution {public boolean isRobotBounded(String instructions) {int x = 0, y = 0, d = 0;int[][] direcions = {{0,1}, {-1,0},{0,-1}, {1,0}};int n = 4;while(n-- > 0) {for(char ch : instructions.toCharArray()) {if(ch == 'G') {x += direcions[d][0];y += direcions[d][1];}else if(ch == 'L') {d = (d + 1) % 4;}else {d = (d + 3) % 4;}}}if(x == 0 && y == 0 && d == 0) {return true;}return false;}
}

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/robot-bounded-in-circle
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

http://www.lryc.cn/news/59665.html

相关文章:

  • 运行时内存数据区之虚拟机栈——局部变量表
  • Java中常用算法及示例-分治、迭代、递归、递推、动态规划、回溯、穷举、贪心
  • 2个 windows 下的网络测试工具
  • HDU - 4734 -- F(x)
  • 【音视频第10天】GCC论文阅读(1)
  • 如何进行移动设备资产管理
  • 使用国密SSL证书,实现SSL/TLS传输层国密改造
  • Oracle之增删改(六)
  • OJ练习第81题——岛屿数量
  • remote gdb 操作流程
  • STM32基础代码学习G070CB串口透传调试(出厂默认)代码
  • 介绍一款idea神级插件【Bito-ChatGPT】
  • pycharm 2021.2.2 版本之前试用期过了怎么办
  • 【通世智库】宁晓红:医疗更完整的样子
  • AD20打开PCB后找不到
  • RTC 基础
  • Quaternion插值方法
  • 如何配置Stash以便与4EVERLAND一起使用
  • webpack plugin源码解析(四) HashedModuleIdsPlugin
  • pytorch | 使用vmap对自定义函数进行并行化/ 向量化的执行
  • Docker部署RabbitMQ(单机,集群,仲裁队列)
  • 生活污水处理设备选购指南
  • 奥威BI数据可视化大屏分享|多场景、多风格
  • 超越时空:加速预训练语言模型的训练
  • 数据库管理系统PostgreSQL部署安装完整教程
  • 有学生问我,重构是什么?我应该如何回答?
  • 交际场合---英文单词
  • 【网络安全】文件上传漏洞及中国蚁剑安装
  • [Java]面向对象高级篇
  • 苹果应用商店上架流程