leetcode做题记录 1041 1647-1041. 困于环中的机器人

简单做法

(python写多了c++都不会写了qwq)时间复杂度为4n

class Solution {
public:
    bool isRobotBounded(string is) {
        int x=0,y=0,m=0;
        int dx[]={0,-1,0,1};
        int dy[]={1,0,-1,0};
        is=is+is+is+is;
        for (int i=0;i<is.size();i++)
            if (is[i]=='G'){
                x=x+dx[m];
                y=y+dy[m];
            }
            else if (is[i]=='L')
                m=(m+1)%4;
            else
                m=(m+3)%4;
        return (x==0&&y==0);

    }
};

思考

其实可以不用四倍的,之间判断m是否为0就可以判断是否会绕圈了。

class Solution {
public:
    bool isRobotBounded(string is) {
        int x=0,y=0,m=0;
        int dx[]={0,-1,0,1};
        int dy[]={1,0,-1,0};
        for (int i=0;i<is.size();i++)
            if (is[i]=='G'){
                x=x+dx[m];y=y+dy[m];
            }
            else if (is[i]=='L') m=(m+1)%4;
            else m=(m+3)%4;
        return (x==0&&y==0)|m;

    }
};
上一篇:时钟周期检测标志信号


下一篇:软件测试基础-软件概述