Reverse Integer--Easy

Posted crush-u-1214

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Reverse Integer--Easy相关的知识,希望对你有一定的参考价值。

一、问题描述

  Given a 32-bit signed integer, reverse digits of an integer.

  意思是给你一个32位有符号的整数,求这个整数的反转数字。

二、生词

  signed adj /sa?nd/ 有符号的

  overflow vi /??v?‘fl??/ 溢出

三、样例及说明

  技术图片

  注意要处理当反转数超出整数范围的情况!

四、解题思路及代码

  用栈存储整数中的每个数字,然后一次取出并用StringBuffer整合。

 1 class Solution {
 2     public int reverse(int x) {
 3         if(x==0) return 0;//若x为0,直接返回0
 4         String s = x+"";
 5         Stack<String> stack = new Stack<String>();
 6         StringBuffer sb = new StringBuffer();
 7         boolean flag=true;//正数
 8     
 9         for(int i=0; i<s.length(); i++) {
10             //如果最后一个数字是0,则不压入栈中
11             if(i==s.length()-1&&s.charAt(s.length()-1)==‘0‘) continue;
12             if(i==0&&s.charAt(0)==‘-‘) { //如果第一个字符是‘-’,把flag置为false,表示是一个负数
13                 flag=false;
14                 continue;
15             }
16             stack.push(s.charAt(i)+"");//压栈
17         }
18         while(!stack.empty()) { //栈不为空,出栈
19             sb.append(stack.pop());
20         }
21         s = sb.toString();//StringBuffer转String
22         //若反转数超出了整数的范围,则直接返回0
23         if(Long.parseLong(s)>Integer.MAX_VALUE) return 0;
24         int result = Integer.parseInt(s);
25         if(!flag){//判断符号正负
26             return -result;
27         }
28         return result;
29     }
30 }

 

以上是关于Reverse Integer--Easy的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode]7. Reverse Integer (easy)

LeetCode:7. Reverse Integer(Easy)

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。

split().reverse().join()代码解析

工具Xorm reverse