第一次用 CSDN 写博客哈,想把自己刷 leetcode 的所思所想所获得的东西写在一个地方,那就简单粗暴一点,用 CSDN 吧。
657. Judge Route Circle
leetcode 的第 657 题
Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place.
The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R (Right), L (Left), U (Up) and D (down). The output should be true or false representing whether the robot makes a circle.
Example 1:
Input: “UD”
Output: true
Example 2:
Input: “LL”
Output: false
是很简单的题目,但是把代码提交后发现速度不是很快,有好多大佬速度很快,在6ms完成,而我居然要30来ms。
class Solution {
public:
bool judgeCircle(string moves) {
int L = 0, U = 0;
for (int i = 0; i < moves.length(); i++)
{
if (moves[i] == 'L')
L++;
else if (moves[i] == 'R')
L--;
else if (moves[i] == 'U')
U++;
else if (moves[i] == 'D')
U--;
}
if (L == 0 && U == 0)
return true;
else
return false;
}
};
加了一段优化后
static string moves =[](){
std::ios::sync_with_stdio(false);
cin.tie(NULL);
return "";
}();
class Solution {
public:
bool judgeCircle(string moves) {
int L = 0, U = 0;
for (int i = 0; i < moves.length(); i++)
{
if (moves[i] == 'L')
L++;
else if (moves[i] == 'R')
L--;
else if (moves[i] == 'U')
U++;
else if (moves[i] == 'D')
U--;
}
if (L == 0 && U == 0)
return true;
else
return false;
}
};
std::ios::sync_with_stdio(false);
cin.tie(NULL);
之前写的题目是用 cout 和 cin ,会 Timeout,如果用 printf 和 scanf 的话就能完成 AC 。之前只觉得cout cin 慢,原来是可以用这玩意加速的呀。
记住!