#include <limits>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param num int整型 
     * @return bool布尔型
     */
    bool isSpecialNumber(int num) {
        // write code here
        vector<int> nums;
        int yu;
        while(num!=0){
        yu=num%10;
        num=num/10;
        nums.push_back(yu);
        }
        int i=0,j=nums.size()-1,temp;
        while(i<j){
            temp=nums[j];
            nums[j]=nums[i];
            nums[i]=temp;
            i++;j--;
        }
        int left=0,right=nums.size()-1;
        while(left<right){
            if(left+1==right&&nums[left]==1&&nums[right]%2==0)return true;
            if(nums[left]==nums[right]){
                left++;
                right--;
            }else{
                if(nums[left]<nums[right]){
                    if(nums[left]!=1){
                        return false;
                    }else{
                        left++;
                        if(nums[left]-nums[right]>1)return false;
                        else if(nums[left]-nums[right]==1){
                            nums[left]=1;
                        }else if(nums[left]==nums[right]){
                            left++;
                        }
                        right--;
                        nums[right]--;
                    }
                }else{
                    if(nums[left]-nums[right]>1) return false;
                    else{
                        nums[left]=1;
                        right--;
                    }
                }
            }
        }
    if(left==right&&nums[left]%2==1)return false;
    return true;
    }
};

从数字本身出发判断其是否是一个特殊数组,若前后两端的数完全一致,则返回true