[研究生冲刺][算法实习生]LeetCode刷题日记(Day7)【欢迎关注,一起努力!Cheers!】
657. 机器人能否返回原点(8.28每日一题)
思路:
我们主要是直接模拟一下机器人的行走路线,用Horizontal和Vertical分别记录横向和纵向的坐标。然后用一个switch语句会比if-else显得简洁。这题主要还有一点就是机器人面向方向不考虑,如果考虑的话则我们要额外考虑一下最后一步。总体来说这题是easy级别的。
算法的复杂度:
算法的时间复杂度为O(n),空间复杂度为O(1)。
代码:
class Solution {
public:
bool judgeCircle(string moves) {
int Horizontal = 0;
int Vertical = 0;
for(int i = 0; i < moves.size(); ++i)
{
switch(moves[i])
{
case 'R': ++Horizontal; break;
case 'L': --Horizontal; break;
case 'U': ++Vertical; break;
case 'D': --Vertical; break;
}
}
if(Horizontal == 0 && Vertical == 0)
return true;
else
return false;
}
};