美文网首页
2019-04-03

2019-04-03

作者: 张炜斌 | 来源:发表于2019-04-03 15:39 被阅读0次

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

示例 1:

输入: 121
输出: true
示例 2:

输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:

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

...
class Solution
{
public:
bool isPalindrome(int x)
{
if (x < 0)
{
return false;
}
else
{
int count = 0;
int* p = new int[100];
for (int i=0;x;i++)
{
p[i] = x % 10;
count++;
x /= 10;
}
for (int i = 0; i < count; i++)
{
if (p[i] != p[count - i - 1])
{
return false;
}
}
return true;
}
}
};
...

题解分析:
(1)此题是一个判断一个整数是否为回文数问题,这类题型在前期也接触较多,但在C语言中,它们结构式程序,而在C++中考虑面向对象的编程思想,将这一类所包含的对象所具有的功能进行封装
(2)因此,定义一个判断是否为回文数的一个类里面具有判断是否为回文数的一个成员函数(共有段)
(3)定义的思路:
1)确定这一个判定函数的返回类型,即此函数为bool型
2)基本的方法:将这一个整型的数通过一个动态数组,将这一个整型的数据的
每一位存入这个数组(但是,在建立动态数组时,需要开辟一个足够大的空
间,在每一次存储时需要用一个计数变量记录这一个数组的有效长度)
3)存储完这一个数以后进行判断,最先判断这一个数是否小于0,是小于零直接
返回假;如果是大于0的通过一个循环 :
for (int i = 0; i < count; i++)
{
if (p[i] != p[count - i - 1])
{
return false;
}
}
return true;
即互为等差中项的数,如果中间有出现不同的现象,就立刻发挥假,如果循
环执行完以后就返回真。

相关文章

网友评论

      本文标题:2019-04-03

      本文链接:https://www.haomeiwen.com/subject/irdzbqtx.html