246. Strobogrammatic Number

最后更新

二刷
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'));
        
    }
}
原文地址:https://www.cnblogs.com/reboot329/p/6288354.html