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.
其实认真观察可以知道这个题相当的简单,那就是每个字母和对应的字母的个数相等就可以了。
代码如下:
public boolean judgeCircle(String moves) {
if (moves.length()==0) {
return false;
}
int countU = 0;
int countD = 0;
int countL = 0;
int countR = 0;
for (int i = 0; i < moves.length(); i++) {
if (moves.charAt(i)=='U') {
countU++;
}
else if (moves.charAt(i)=='D') {
countD++;
}
else if (moves.charAt(i)=='L') {
countL++;
}
else if(moves.charAt(i)=='R') {
countR++;
}
else {
break;
}
}
if (countD==countU&&countL==countR) {
return true;
}
return false;
}
但是依靠Java我们可以这样做
别人的答案
moves=" " + moves + " ";
return moves.split("L").length==moves.split("R").length && moves.split("U").length == moves.split("D").length;
但是呢?如果是c语言呢?我想还是只有用我的思路?