欢迎光临
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