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

题目要求:

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

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

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

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

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

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

代码实现:

bool isRobotBounded(char * instructions) {

int direc[4][2] = {{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 = instructions[i];

if (instruction == 'G') {

x += direc[direcIndex][0];

y += direc[direcIndex][1];

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

direcIndex += 3;

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

} else {

direcIndex++;

direcIndex %= 4;

}

}

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

}

作者:力扣官方题解

来源:力扣(LeetCode)

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

相关推荐
宵时待雨4 分钟前
C++笔记归纳13:map & set
开发语言·数据结构·c++·笔记·算法
1104.北光c°1 小时前
滑动窗口HotKey探测机制:让你的缓存TTL更智能
java·开发语言·笔记·程序人生·算法·滑动窗口·hotkey
仰泳的熊猫5 小时前
题目2570:蓝桥杯2020年第十一届省赛真题-成绩分析
数据结构·c++·算法·蓝桥杯
无极低码8 小时前
ecGlypher新手安装分步指南(标准化流程)
人工智能·算法·自然语言处理·大模型·rag
爱编码的小八嘎9 小时前
C语言完美演绎4-7
c语言
软件算法开发9 小时前
基于海象优化算法的LSTM网络模型(WOA-LSTM)的一维时间序列预测matlab仿真
算法·matlab·lstm·一维时间序列预测·woa-lstm·海象优化
superior tigre9 小时前
22 括号生成
算法·深度优先
炘爚10 小时前
C语言(文件操作)
c语言·开发语言
努力也学不会java10 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试