#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

京公网安备 11010502036488号