这是关于一个普通双非本科大一学生的C++的学习记录贴
在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料
那么开启正题
今天分享的是关于vector的题目
1.回文数
给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
这道题看起来很简单,遍历倒加一次数就可以了,但是会遇到倒过来的数超出整形范围的问题,并且如果是负数也不好判断,于是,我们将数据遍历,存入vector中,再前后遍历数组,如果不同直接返回false,遍历完成后返回true
class Solution {
public:
bool isPalindrome(int x)
{
if(x < 0)
return false;
vector<int> v;
while(x)
{
v.push_back(x%10);
x/=10;
}
int left = 0;
int right = v.size() - 1;
while(left < right)
{
if(v[left] != v[right])
return false;
++left;
--right;
}
return true;
}
};
这是ac代码
新手写博客,有不对的位置希望大佬们能够指出,也谢谢大家能看到这里,让我们一起学习进步吧!!