题目
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例1
输入: 123
输出: 321
示例2
输入: -123
输出: -321
示例3
输入: 120
输出: 21
解析:
1.x%10,取出末位数
2.x/10,得到除去末尾数剩下的数字
3.将末尾数乘以相应的10的次方得到反转数字的最大位
4.重复第一步,直到x=0
代码
public class Solution {
public int Reverse(int x) { long result=0; int num; int len; if(x>=0){len=(x+"").Length;} else{len=(x+"").Length-1;} while(x!=0) { for(int i=0;i<len;i++) { num=x%10;//末位数 x=x/10;//去掉末尾数的新数字; result+=(Int64)(num*Math.Pow(10,len-i-1)); } } if((result>Math.Pow(2,31)-1)||(result<(-1)*Math.Pow(2,31))){return 0;} return (int)result; } }
实验结果
执行用时 :56 ms, 在所有 C# 提交中击败了93.32%的用户
内存消耗 :14 MB, 在所有 C#提交中击败了13.71%的用户