Lintcode 反转整数
来源:互联网 发布:python 月份加减 编辑:程序博客网 时间:2024/05/16 04:00
题目
将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。
样例
给定 x = 123,返回 321
给定 x = -123,返回 -321
class Solution {public: /** * @param n the integer to be reversed * @return the reversed integer */ int reverseInteger(int n) { // Write your code here //如何判断整数的溢出? //如何判断整数反转后的溢出?是不是应该换成long bool flag=true; long res=0; //输入非法 if(n>=2147483648||n<=-2147483648) return 0; //反转操作 else { vector<int> vec; if(n<0) { flag=false; n=-n; } while(n!=0) { //得到每一位的数字加入容器尾端 vec.push_back(n%10); n/=10; } //求反转后的数字 for(auto c:vec) res=res*10+c; } //反转之后的判断 if(res>=2147483648) { return 0; } else if(flag==false) return -res; else return res; }};
优化
我们可以一边计算res的值一边判断res是否越界
class Solution {public: /** * @param n the integer to be reversed * @return the reversed integer */ int reverseInteger(int n) { // Write your code here //如何判断整数的溢出? //如何判断整数反转后的溢出?是不是应该换成long long res=0; //输入非法 if(n>=2147483648||n<=-2147483648) return 0; //反转操作 else { vector<int> vec; while(n!=0) { //得到每一位的数字加入容器尾端 vec.push_back(n%10); n/=10; } //求反转后的数字,并判断数字是否越界 for(auto c:vec) { res=res*10+c; if(res>=2147483648) return 0; } } return res; }};
再优化,因为res在计算的过程中,如果发生越界,那么得到的值/10操作肯定不会等于未加之前的值,则,res也可以声明为int类型。
class Solution {public: /** * @param n the integer to be reversed * @return the reversed integer */ int reverseInteger(int n) { int result = 0; while (n) { auto prev = result; result *= 10; result += n % 10; if (result / 10 != prev) { result = 0; break; } n /= 10; } return result; }};
0 0
- lintcode ----反转整数
- lintcode,反转整数
- Lintcode 反转整数
- LintCode - 413.反转整数
- LintCode之反转整数
- 【LintCode】反转整数
- lintcode反转整数
- Lintcode反转整数
- [LintCode]413.反转整数
- 反转整数-LintCode
- [Lintcode] #413 反转整数
- LintCode 第413题 反转整数 【整数】
- LintCode python 小白-简单题-413-反转整数
- 反转整数
- 反转整数
- 反转整数
- 整数反转
- 反转整数
- 2014年汕头市选拔赛普级组 数数
- python套利系列之价差分析--python学习笔记22
- VMwareWorkstation 12安装Windows7x64时报错:units specified don't exist SHSUCDX should can't install 解决
- <context:component-scan>使用说明
- Nginx代理TCP请求模块添加及配置步骤
- Lintcode 反转整数
- 干货 | 可视化设计:地图四部曲之迁徙图
- java压缩图片内存大小,但不改变分辨率大小,第一种方式
- Thinking in Java(8)-inheritance and cleanup
- 【linux系统】Ubuntu根目录下各文件夹的功能详细介绍
- Koa 请求日志打点工具
- EditeText
- 选用Ibatis和Hibernate的区别
- ios 替换字符串