Leetcode 第136场周赛 5055 困于环中的机器人

在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。机器人可以接受下列三条指令之一:

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

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

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

class Solution {
public:
    bool isRobotBounded(string instructions) {
        int direction=0;    //代表方向, 0向北,1向西,2向南,3向东
        int runnum=4;       //循环运行次数4
        int length[4]={0,0,0,0};    //记录四个方向上的步数
        while(runnum--){
            for(int i=0;i<instructions.length();i++){
                if(instructions[i]=='L'){direction++;}    //左拐弯 方向+
                if(instructions[i]=='R'){direction--;}    //右拐弯 方向-
                if(direction < 0) {direction = direction + 4;}  //如果方向变成负数, +4, 类似于一个4个方向循环移位的过程
                if(direction > 3) {direction = direction % 4;}  //如果方向大于4, 取模
                if(instructions[i]=='G'){++length[direction];}  //在某一方向上计步
            }
            if(length[0]-length[2]==0 && length[1]-length[3]==0){return true;}//向北走-向南走 && 向西走-向东走 
        }
        return false;
    }
};

runnum是4, 对于类似于"GL"这样的.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值