C++从零开始(day22)——日常刷题5

这是关于一个普通双非本科大一学生的C++的学习记录贴

在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料

那么开启正题

今天分享的是关于vector的题目

1.回文数

9. 回文数

给你一个整数 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代码

新手写博客,有不对的位置希望大佬们能够指出,也谢谢大家能看到这里,让我们一起学习进步吧!!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值