思路:定义L和U记录向左和向上走的步数,当遇到L和U时加1,遇到D和R时减1,循环结束时L和U同时为零则表示能回到原点。
空间复杂度为O(1)写法是,使用char temp = moves.charAt(i);
替换char[] chars = moves.toCharArray();
不是会增加运行时间,典型的用空间换时间做法
public boolean judgeCircle(String moves) {
int L = 0;
int U = 0;
char[] chars = moves.toCharArray();
for (int i = 0; i < chars.length; i++) {
int temp = chars[i];
if (temp=='L'){
L++;
} else if (temp=='R'){
L--;
} else if (temp=='U'){
U++;
}else {
U--;
}
}
return U==0&&L==0?true:false;
}
时间复杂度:O(n)
空间复杂度:O(n)