657. Judge Route Circle(字符串转换成字符比较问题)

来源:互联网 发布:富通天下软件下载 编辑:程序博客网 时间:2024/06/05 21:58

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

成功提交:方法一class Solution {    public boolean judgeCircle(String moves) {        int flagUD = 0;        int flagLR = 0;        for(int i =0;i<moves.length();i++){           char ch = moves.charAt(i);           //将字符串中的字符单独比较            if(ch == 'U'){                flagUD++;            }else if(ch == 'D'){                flagUD--;            }else if(ch == 'L'){                flagLR ++;            }else if(ch == 'R'){                flagLR --;            }        }        if(flagUD == 0 && flagLR == 0){            return true;        }else{            return false;        }    }} 

1.单个字符比较时候,UDLR都应该被单引号所包围

错误代码

    错误代码    class Solution {    public boolean judgeCircle(String moves) {        char [] stringArr = moves.toCharArray(); 将字符串转换成char数组,        int flagUD = 0;        int flagLR = 0;        for(int i =0;i<stringArr.length;i++){            if(stringArr[i] == "U"){                flagUD++;            }else if(stringArr[i] == "D"){                flagUD--;            }else if(stringArr[i] == "L"){                flagLR ++;            }else if(stringArr[i] == "R"){                flagLR --;            }        }        if(flagUD == 0 && flagLR == 0){            return true;        }else{            return false;        }    }}
成功提交:方法二class Solution {    public boolean judgeCircle(String moves) {        char [] stringArr = moves.toCharArray();        //将字符串转换成char数组,        int flagUD = 0;        int flagLR = 0;        for(int i =0;i<stringArr.length;i++){            if(stringArr[i] == 'U'){                flagUD++;            }else if(stringArr[i] == 'D'){                flagUD--;            }else if(stringArr[i] == 'L'){                flagLR ++;            }else if(stringArr[i] == 'R'){                flagLR --;            }        }        if(flagUD == 0 && flagLR == 0){            return true;        }else{            return false;        }        //方法三:        return flagUD==0 && flagLR == 0;    }}

方法一:通过时间为19ms
方法二:通过时间为16ms
方法三:通过时间为14ms

总结:字符串转换成字符比较有两种比较方法,一种是转换成char数组
char [] stringArr = moves.toCharArray();第二种就是每次都取出其中的一个字符来比较char ch = moves.charAt(i);两种方法两种思路。

原创粉丝点击