题目链接:
分析:很简单的模拟问题,同样属于手撕代码最喜欢的部分。
算法思路:定义一个x,y表示每个时刻机器人所在的位置,初始为(0,0)。遍历整个字符串,对每个字符,我们进行比较:如果为R,则让机器人向右移动;如果为L,则向左移动;如果为U则向上移动;如果为D则向下移动。在模拟结束后,x y代表的就是机器人现在所在的位置,我们只需要观察是否为原点,如果是那么返回true即可,否则返回false。
参考代码:
- class Solution {
- public:
- bool judgeCircle(string moves) {
- int x=0,y=0;//假设0,0是机器人的初始位置
- for(int i=0;i
size();++i){//遍历整个操作 - if(moves[i]=='R'){//向右移动
- x++;
- }else if(moves[i]=='L'){//向左移动
- x--;
- }else if(moves[i]=='U'){//向上移动
- y++;
- }else{//向下移动
- y--;
- }
- }
- if(x==0&&y==0)//如果在原点则true 否则false
- return true;
- return false;
- }
- };