246-中心对称数

中心对称数

题目

中心对称数是指一个数字在旋转了180 度之后看起来依旧相同的数字(或者上下颠倒地看)。

请写一个函数来判断该数字是否是中心对称数,其输入将会以一个字符串的形式来表达数字。

示例 1:

输入:  "69"
输出: true

示例 2:

输入:  "88"
输出: true

示例 3:

输入:  "962"
输出: false

思路

此题对于数字有不同的要求,0,1,6,8,9旋转180°后,得到新的数字0,1,9,8,6

而其他数字旋转过后则不是数字,因此可以遍历这个数字,一旦出现对应数字则替换,之后比较两个数字是否相同即可.

代码没有验证过.

代码

class Solution {
    public boolean isSymmetry(int num) {
        HashMap map = new HashMap<>();
        map.put('0','0');
        map.put('1','1');
        map.put('2','-');
        map.put('3','-');
        map.put('4','-');
        map.put('5','-');
        map.put('6','9');
        map.put('7','-');
        map.put('8','8');
        map.put('9','6');

        String number = num + "";
        StringBuilder stringbuilder = new StringBuilder();
        for(int i =number.length()/2-1;i>=0;i--){
            if(map.get(number.charAt(i)) == '-'){
                return false;
            }
            stringbuilder.append(map.get(number.charAt(i)));
        }
        String substring = number.substring(number.length() / 2);
        if(stringbuilder.toString().equals(substring)){
            return true;
        }else{
            return false;
        }
    }
}

你可能感兴趣的:(246-中心对称数)