简单做法
(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;
}
};