LeetCode 657. Judge Route Circle
Posted hzg1981
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 657. Judge Route Circle相关的知识,希望对你有一定的参考价值。
problem:
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
first:
import java.util.Stack;
class Solution {
public boolean judgeCircle(String moves) {
Stack<Character> stack = new Stack<Character>();
for(int i=0;i<moves.length();i++){
if(stack.size()==0){
stack.push(moves.charAt(i));
} else if(stack.peek()==‘U‘&&moves.charAt(i)==‘D‘||
stack.peek()==‘D‘&&moves.charAt(i)==‘U‘||
stack.peek()==‘L‘&&moves.charAt(i)==‘R‘||
stack.peek()==‘R‘&&moves.charAt(i)==‘L‘){
stack.pop();
} else {
stack.push(moves.charAt(i));
}
}
return stack.empty() ? true : false;
}
}
result:
2:
import java.util.Stack; class Solution { public boolean judgeCircle(String moves) { int rCounts=0, lCounts=0,dCounts=0,uCounts=0; for(int i=0;i<moves.length();i++){ if(moves.charAt(i)==‘U‘){ uCounts++; } if(moves.charAt(i)==‘D‘){ dCounts++; } if(moves.charAt(i)==‘R‘){ rCounts++; } if(moves.charAt(i)==‘L‘){ lCounts++; } } return uCounts==dCounts&&rCounts==lCounts ? true : false; } }
result:
参考答案:
class Solution { public boolean judgeCircle(String moves) { int x = 0, y = 0; for (char move: moves.toCharArray()) { if (move == ‘U‘) y--; else if (move == ‘D‘) y++; else if (move == ‘L‘) x--; else if (move == ‘R‘) x++; } return x == 0 && y == 0; } }
result:
retry:
class Solution { public boolean judgeCircle(String moves) { int rCounts=0, lCounts=0,dCounts=0,uCounts=0; char[] charArray = moves.toCharArray(); for(int i=0;i<charArray.length;i++){ if(charArray[i]==‘U‘){ uCounts++; } if(charArray[i]==‘D‘){ dCounts++; } if(charArray[i]==‘R‘){ rCounts++; } if(charArray[i]==‘L‘){ lCounts++; } } return uCounts==dCounts&&rCounts==lCounts ? true : false; } }
result:
conclusion:
可见把String转换成char数组后效率更高。
以上是关于LeetCode 657. Judge Route Circle的主要内容,如果未能解决你的问题,请参考以下文章
[leetcode-657-Judge Route Circle]
LeetCode 657. Judge Route Circle
LeetCode 657. Judge Route Circle
leetcode-657-Judge Route Circle