leetcode-9.回文数(水仙花数)

题意:给定整数,判断是否是水仙花数(回文数),返回判断结果

算法:

1.判断负数, 如果是负数直接返回false
2.将整数逐位拆解,用数组存储
3.遍历数组,若本位与后面对应位不等返回false.

Code

 1 class Solution {
 2 public:
 3     bool isPalindrome(int x) {
 4         if(x < 0)
 5             return false;//负数,直接返回false
 6         int perBit[32+2];//数组,用于存储数字每一位
 7         int count=0;
 8         bool flag = true;
 9         while(x)//数字数组化
10         {
11             perBit[count] = x%10;
12             x /= 10;
13             count++;
14         }
15         for(int i=0; i<count; i++)//遍历数组(其实是遍历一般)
16         {
17             if(perBit[i] != perBit[count-1-i])//对应位置值不等,不是,返回false
18             {
19                 return false;
20             }
21             if(i == count/2)//扫一半就够了
22                 break;
23         }
24         return flag;//若是,返回true
25     }
26 };