思考过程:
熟悉的周五,熟悉的简单题。leetcode为了大家的周末操碎了心。解题思路很简单,用两个数来保存水平移动数和垂直移动数,遍历一遍后,如果两个数都为0,即返回true,否则false。
代码实现:
public boolean judgeCircle(String moves) {
char r = 'R', l = 'L', u = 'U', d = 'D';
char[] chars = moves.toCharArray();
int rl = 0, ud = 0;
for (char c : chars) {
if (c == r) {
rl++;
} else if (c == l) {
rl--;
} else if (c == u) {
ud++;
} else if (c == d) {
ud--;
}
}
return rl == 0 && ud == 0;
}
执行结果:
算法复杂度分析:
时间复杂度,O(n)
空间复杂度,O(1)
完全一样。(*^▽^*)
总结:
提交这道题后,发现3年前已经做过,思路一样,代码一样,连临时变量命名都一样。
今天题目很简单,可以花时间看看昨天的题了。