Shawngbk / Leecode

Questions of Leecode
0 stars 0 forks source link

246. Strobogrammatic Number #124

Open Shawngbk opened 7 years ago

Shawngbk commented 7 years ago

方法一:用两个指针判断两个字符char是否相等 public class Solution { public boolean isStrobogrammatic(String num) { int start = 0; int end = num.length() - 1; while(end >= start) { if(!isPair(num.charAt(start), num.charAt(end))) { return false; } start++; end--; } return true; }

private boolean isPair(char a, char b) {
    if((a == '1' && b == '1') ||
       (a == '0' && b == '0') ||
       (a == '8' && b == '8') ||
       (a == '6' && b == '9') ||
       (a == '9' && b == '6')) {
           return true;
       }
       return false;
}

}

方法二: public boolean isStrobogrammatic(String num) { for (int i=0, j=num.length()-1; i <= j; i++, j--) if (!"00 11 88 696".contains(num.charAt(i) + "" + num.charAt(j))) return false; return true; }

方法三: public boolean isStrobogrammatic(String num) { StringBuilder s = new StringBuilder(); for(int i = 0;i<num.length();i++){ char c = num.charAt(i); switch(c){ case '1': c = '1'; break; case '6': c = '9';break; case '9': c = '6';break; case '8': c = '8';break; case '0': c = '0';break; default: return false; } s.append(c); } return s.reverse().toString().equals(num); }

Shawngbk commented 7 years ago

google