Java for LintCode 颠倒整数

将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。

解题思路:

JAVA实现如下:

    public int reverseInteger(int n) {
		Boolean isNeg = n >= 0 ? false : true;
		StringBuilder sb = new StringBuilder(n+"");
		if (isNeg)
			sb.delete(0, 1);
		sb = sb.reverse();
		long res = 0;
		for (int i = 0; i < sb.length(); i++)
			res = res * 10 + sb.charAt(i) - ‘0‘;
		if (res > Integer.MAX_VALUE)
			return 0;
		return isNeg ? -(int) res : (int) res;
    }
时间: 2024-11-12 10:16:36

Java for LintCode 颠倒整数的相关文章

lintcode 容易题:reverse integer 颠倒整数

题目: 颠倒整数 将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数). 样例 给定 x = 123,返回 321 给定 x = -123,返回 -321 解题: 直接反转,越界处理好炒蛋 Java程序: public class Solution { /** * @param n the integer to be reversed * @return the reversed integer */ public int reverseInteger(int n

java与C在整数累加的运算对比

java与C在整数累加的运算对比 先来没事,今天晚上突发奇想,在同样平台ubuntu14.04,同等运算负荷的情况下测试了一下C与java的性能.可是,最后的实验结果让我大吃一惊,在我的心里也慢慢再一次对詹姆斯.高斯林(java语言的作者)的敬意.实验本身很简单,各位看官也可以去做同样的实验.有了心得之后,不妨一起本着学习的心态,共同交流,共同成长.下面贴出测试代码: C语言: <span style="font-size:18px;"><strong> int

JAVA版拆分大整数为2幂的和算法

import java.util.ArrayList; import java.util.List; public class StrTest { public static void main(String[] args) { //模拟生成一个大整数 Long n=ShengCheng(); //拆分这个大整数,看看是由哪些东东组成的 List<Long> list =SplitNumber(n); for(int i=0;i<list.size();i++) { System.out

Java中的高精度整数和高精度小数

在实际编码中,会遇到很多高精度的事例,比如,在计算金钱的时候就需要保留高精度小数,这样计算才不会有太大误差: 在下面的代码中,我们验证了,当两个float型的数字相加,得到的结果和我们的预期结果是有误差的,为了减小和防止这种误差的出现,我们需要使用BigInteger类和BigDecimal类来计算. package com.ietree.base.number; import java.math.BigDecimal; import java.math.BigInteger; public c

颠倒整数问题

问题: 输入一个正整数(<10000),输出颠倒后的整数. [样例输入]1234[样例输出]4321 回答: #include <stdio.h>int main(){ int num ;    scanf("%d",&num);    int x,y,z,n,result; if(num > 999)    {     x = num / 1000;     y = num % 1000 / 100;     z = num % 1000 % 100

Java中用反码表示整数,及int到byte的转换

Java中的整数都是通过补码表示的,当整数为正数时,补码和原码相同,当整数为负数时,补码为原码按位取反(符号位除外),然后加1. 通过一些例子可以比较明显的看出: int a = -1; System.out.println(Integer.toBinaryString(a));//output: 11111111111111111111111111111111 int a = -128; System.out.println(Integer.toBinaryString(a));//outpu

Java第二课:整数、浮点数

浮点数 带小数点的数.浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式.另一种方式叫做定点数,不过在Java中不会遇到定点数.人们借用浮点数这个词来表达所有带小数点的数. 当浮点数和整数放到一起运算时,Java会将整数转换成浮点数,然后进行浮点数的运算. 通常用double来表示浮点数的类型 浮点数计算是有误差的,当我们需要用精确的计算时,还是要用整数. 整数类型不能表达有小数部分的数.计算机里会有纯粹的整数这种奇怪的东西,是因为整数的运算比较快,而且占

java与js取整数小结

java 取整 (-)Math类 1.Math.floor : 返回double值,小于目标值的最大整数. 例 : String v = "13.5";  Math.floor(Double.parseDouble(v)); 结果 :13.0. String v = "-13.5";  Math.floor(Double.parseDouble(v)); 结果 :-14.0. 2.Math.ceil : 返回double值,大于目标值的最小整数. 例 :String

LeetCode(7):颠倒整数

Easy! 题目描述:给定一个范围为 32 位 int 的整数,将其颠倒. 例1: 输入:132 输出:321 例2: 输入:-123 输出:-321 例3: 输入:120 输出:21 注意:假设我们的环境只能处理 32 位 int 范围内的整数.根据这个假设,如果颠倒后的结果超过这个范围,则返回 0. 解题思路: 由于之前的OJ没有对溢出进行测试,所以网上很多人的解法没有处理溢出问题也能通过OJ.现在OJ更新了溢出测试,所以还是要考虑到.为什么会存在溢出问题呢,我们知道int型的数值范围是 -