LeetCode每日一题——困于环中的机器人

题目要求:

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

  • 北方向 是y轴的正方向。
  • 南方向 是y轴的负方向。
  • 东方向 是x轴的正方向。
  • 西方向 是x轴的负方向。

机器人可以接受下列三条指令之一:

  • "G":直走 1 个单位
  • "L":左转 90 度
  • "R":右转 90 度

机器人按顺序执行指令 instructions,并一直重复它们。

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

代码实现:

bool isRobotBounded(char * instructions) {

int direc42 = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};//分别代表上、右、下、左

int direcIndex = 0;//默认面朝北

int x = 0, y = 0;//初始坐标为原点

int n = strlen(instructions);//获取字符串的长度

for (int i = 0; i < n; i++) {

char instruction = instructionsi;

if (instruction == 'G') {

x += direcdirecIndex0;

y += direcdirecIndex1;

} else if (instruction == 'L') {

direcIndex += 3;

direcIndex %= 4;//控制在0~3之间

} else {

direcIndex++;

direcIndex %= 4;

}

}

return direcIndex != 0 || (x == 0 && y == 0);//如果机器人朝向没有改变或者回到原点,则返回true,否则返回false

}

作者:力扣官方题解

来源:力扣(LeetCode)

坚持编程,我一直在路上!

相关推荐
土司大王1 分钟前
LeetCode hot100——51.N 皇后:Java 回溯模板、列与对角线剪枝、O(n!) 复杂度分析
java·leetcode·剪枝
clear sky .5 分钟前
内存8字节对齐是什么?
c语言·stm32·嵌入式硬件
无忧.芙桃12 分钟前
C++内存管理
c语言·开发语言·c++·青少年编程
金金计较.18 分钟前
Go语言-2
开发语言·算法·golang
计算机编程-吉哥29 分钟前
基于机器学习的城市交通拥堵分析与预测平台【计算机毕业设计选题·机器学习·随机森林算法】
hadoop·算法·随机森林·机器学习·课程设计·计算机毕业设计选题·大数据毕业设计选题推荐
zyeyeye1 小时前
C++入门:从HelloWorld到命名空间揭秘
c语言·开发语言·c++·算法
牧羊人.3331 小时前
动手学深度学习 04 | Dataset 和 DataLoader、数据增强
人工智能·pytorch·深度学习·算法
elseif1231 小时前
【双指针/二分】P1102 A-B 数对
c++·算法·二分·双指针
电梯界知识分子1 小时前
江西抚州临川九尊府五层别墅:受限楼梯间里,全黑铝合金观光井道配曳引龙门架的落地记录
大数据·前端·网络·算法·家用电梯
木井巳1 小时前
【记忆化搜索】斐波那契数
java·算法·leetcode·深度优先·剪枝·推荐算法