*************
C++
topic:657. 机器人能否返回原点 - 力扣(LeetCode)
*************
inspect the topic very first.
![]() |
It is letters to decide which side the robot moves. And my thought is quite sample. Assumeing the robot can move back to the origin, then the numbers of L have to be the same with the numbers of R. So are U and D.
Then the code can be easy to write. Travel through the string and count the letters.
class Solution {
public:
bool judgeCircle(string moves) {
int n = moves.size(); // to figure out the size at first
int countR = 0;
int countL = 0;
int countU = 0;
int countD = 0;
for (int i = 0; i < n; i++)
{
if (moves[i] == 'R')
{
countR = countR + 1;
}
else if (moves[i] == 'L')
{
countL = countL + 1;
}
else if (moves[i] == 'U')
{
countU = countU + 1;
}
else
{
countD++;
}
}
if (countR == countL && countD == countU)
{
return true;
}
else
{
return false;
}
}
};
![]() |
However, I donot think it is a elegent code. If you gays finish the Nine-year compulsory education,you will know coordinate system.
![]() |
↑ y = y + 1;
↓ y = y - 1;
← x = x - 1;
→ x = x + 1;
class Solution {
public:
bool judgeCircle(string moves) {
int x = 0;
int y = 0;
for (char c : moves)
{
if (c == 'U') y++;
else if (c == 'D') y--;
else if (c == 'R') x++;
else if (c == 'L') x--;
}
return x == 0 && y == 0;
}
};
![]() |
It is do elegent.
Maybe apple would change the design of ios in the near future. I donot care whether the ios system is fluently or not, I just want to see what desigh looks.
![]() |