leetcode10-困于环中的机器人
2024-01-08 05:59:35
题目链接:
思路:
首先,题目要寻找的是成环的情况。
1.如果经历一次指令后的方向仍为北方,要使得机器人循环困住,必须让机器人回到原点
2.如果经历一次指令后的方向不是北方,那么最多重复四次又会回到面朝北方,这种情况下机器人虽然不会回到原点,但是也一直都被环困住。?
代码采用了常用的二维平面的向量坐标写法。
代码:
class Solution {
public boolean isRobotBounded(String instructions) {
//记录 0 1 2 3
// 北东南西 坐标向量写法
int [][] res = {
{0,1},{1,0},{0,-1},{-1,0}
};
int n = instructions.length();
int x = 0,y = 0;//记录坐标
int faceDirect = 0;//记录朝向 一开始为0 表示指向北
for(int i = 0;i<n;i++) {
//直走命令
if(instructions.charAt(i)=='G') {
x+=res[faceDirect][0];
y+=res[faceDirect][1];
}
//左转命令
else if(instructions.charAt(i)=='L') {
faceDirect = (faceDirect+3)%4;
}
//右转命令
else if(instructions.charAt(i)=='R') {
faceDirect = (faceDirect+1)%4;
}
}
if( (x==0 && y==0)|| faceDirect!=0)
return true;
return false;
}
}
文章来源:https://blog.csdn.net/m0_62404686/article/details/135442458
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!