最后更新
二刷
15-Jan-2017
翻船了= = 还是要仔细点。
Time: O(n)
Space: O(1)
public class Solution {
public boolean isStrobogrammatic(String num) {
int l = 0;
int r = num.length() - 1;
char[] strs = num.toCharArray();
while (l < r) {
if (!isOK(strs[l++], strs[r--])) return false;
}
if (l == r) {
return strs[l] == '0' || strs[l] == '8' || strs[l] == '1';
} else {
return true;
}
}
public boolean isOK(char a, char b) {
if (a == '0' && b == '0') return true;
if (a == '8' && b == '8') return true;
if (a == '1' && b == '1') return true;
if (a == '6' && b == '9') return true;
if (a == '9' && b == '6') return true;
return false;
}
}
一刷
20-Oct-2016
难点在于strobogrammatic的发音。
似乎念作
死装爆姑如额 卖题克。。
或者
死装爆姑 如爱么题克。。
重音在哪呢。。?????
我他妈在浪费时间……
public class Solution {
public boolean isStrobogrammatic(String num) {
// 0 1 8 6 9
if(num.length() == 0) return true;
int l = 0;
int r = num.length()-1;
while(l < r){
if(!isOK(num.charAt(l++),num.charAt(r--))) return false;
}
if(l == r) return num.charAt(l) == '0' || num.charAt(l) == '1' || num.charAt(l) == '8';
else return true;
}
public boolean isOK(char l, char r){
if(l == r) return l == '0' || l == '1' || l == '8';
else return ((l == '9' && r == '6')||(l == '6' && r == '9'));
}
}