当前位置: 首页 > news >正文

7 正数反转 9 回文数

题目

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123
输出:321
示例 2:

输入:x = -123
输出:-321
示例 3:

输入:x = 120
输出:21
示例 4:

输入:x = 0
输出:0

class Solution {
public:
    int reverse(int x) {
        long long resu=0;//记录反转后的数字
        long long t=x;//复制原数字,之后会被消耗
        t=t>0 ? t:-t;//将负数转化为正数
        for(;t;t/=10)//反转数字
            resu=resu*10+t%10;
        //记录正负
        bool flag=x<0? true:false;
        //判断是否越界
        if(resu>INT_MAX || (flag&&resu-1>INT_MAX))//越界
            return 0;
        else{//每越界
            if(flag) return -resu;//负数
            else return resu;//正数
        }
        
    }
};
  • 题目是将当前数字反转,如果超过int范围则返回0,同时正负号不变
  • 题目给定的数字x一定是在int范围内的,只需要判断反转后的数字是否超出int范围。计算反转后的数字,将它存储在long long类型中,比较是否越界和正负情况

题目

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

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

例如,121 是回文,而 123 不是。

示例 1:

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

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

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

class Solution {
public:
    bool isPalindrome(int x) {
        if(x<0) return false;//负数情况
        int len=1;//计算左指针位置
        while(x/len>=10)
            len*=10;
        //判断回文数
        while(x>0)
        {
            int l=x/len;//左指针
            int r=x%10;//右指针
            if(l!=r) return false;//左右数字不相等,返回false
            //当前两个数字判断完后抛弃
            x=x%len/10;
            len/=100;
        }
        return true;//是回文数
    }
};

  • 判断回文数
  • 如果当前数字为负,直接返回false。然后左右指针分别指向数字的首尾,不相等则返回false,相等则继续判断下一组

相关文章:

  • java基于springboot+vue的在线图书查询阅读系统
  • VODTOPODO%POJO
  • SL3036H 8-150V电动车专用降压恒压电源芯片
  • python和js实现日期转guid算法
  • Vue常用指令及自定义指令
  • Linux基础-网络配置
  • excel怎么设置选项按钮?
  • 商标查询接口
  • C#核心04——委托和事件
  • vue项目设置打包后的静态文件访问路径
  • 2021兴业数金Java笔试题面经
  • 【无标题】产品经理基础--08交互说明撰写方法
  • 2021-05-13 Redis面试题 Redis集群最大节点个数是多少?
  • word内容和纸张方向一起旋转的方法
  • 深入理解计算机系统 csapp datalab 详解(位操作,数据表示)
  • Android单元测试 - 几个重要问题
  • Angular 2 DI - IoC DI - 1
  • Angular Elements 及其运作原理
  • emacs初体验
  • HTML-表单
  • Java面向对象及其三大特征
  • mongodb--安装和初步使用教程
  • mysql常用命令汇总
  • Protobuf3语言指南
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • webpack+react项目初体验——记录我的webpack环境配置
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 开发基于以太坊智能合约的DApp
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 王永庆:技术创新改变教育未来
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 智能合约Solidity教程-事件和日志(一)
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ###项目技术发展史
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (ibm)Java 语言的 XPath API
  • (动态规划)5. 最长回文子串 java解决
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)linux 命令大全
  • ***详解账号泄露:全球约1亿用户已泄露
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .apk文件,IIS不支持下载解决
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET开发不可不知、不可不用的辅助类(一)
  • 。Net下Windows服务程序开发疑惑
  • @Conditional注解详解
  • @JsonFormat与@DateTimeFormat注解的使用
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [1204 寻找子串位置] 解题报告