欢迎光临
Corasql

9、回文数

题目描述

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121 输出: true

示例 2:

输入: -121 输出: false

解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入: 10 输出: false

解释: 从右向左读, 为 01 。因此它不是一个回文数。

进阶:

你能不将整数转为字符串来解决这个问题吗?

简答:

class Solution {
public:
    bool isPalindrome(int x) {
         if (x < 0)
return false;
if (x < 10)
return true;
int bitnum = 0, j = 0,i=0;
int y = x, y_left = x;
int left_num, right_num;
while (y != 0)
{
y = y/10;
bitnum++;
}
    
if (bitnum == 1 ||bitnum == 0)
return false;
y = x;
int bit_sum=bitnum / 2;
while (j <= bit_sum)
{
   --bitnum;
   right_num = y % 10;
   i= pow(10, bitnum);
   left_num = y_left /i;
   y_left %= i;
   y = y / 10;
   if (right_num != left_num)
   return false;
   j++;
}
return true;
    }
};

 

未经允许不得转载:CORASQL » 9、回文数

分享到:更多 ()

评论 抢沙发

评论前必须登录!

DBA是一种生活方式,优化是一种生活态度

OracleMySQL