7. Reverse Integer

来源:互联网 发布:mysql模糊查询语句 编辑:程序博客网 时间:2024/06/07 09:41

题目要求:
1.输入数字为32位有符号整形;
2.整形符号不变,数字颠倒;
3.变换后溢出则返回0.

Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321click to show spoilers.Note:The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

算法代码:

using System;namespace CSharp{    class LeetCode    {        public int Revers_7(int x)        {            //转化为字符数组,并创建新的同长度数组            char[] x1 = Convert.ToString(x).ToCharArray();            char[] x2 = new char[x1.Length];            //为非负数时,首尾互置,并转换为Int64,判断是否大于Int32            if (x1[0] != '-')            {                for (int i = 0; i <= x1.Length - 1; i++)                {                    x2[i] = x1[x1.Length - 1 - i];                }                string str = string.Join("", x2);                //用long是判断转换后的值是否大于2^31-1                long y = Convert.ToInt64(str);                if (y > Math.Pow(2, 31) - 1) return 0;                else return Convert.ToInt32(y);            }            //为负数时            else            {                x2[0] = x1[0];                for (int j = 1; j <= x1.Length - 1; j++)                {                    x2[j] = x1[x1.Length - j];                }                string str2 = string.Join("", x2);                long y2 = Convert.ToInt64(str2);                if (Math.Abs(y2) > Math.Pow(2, 31) - 1) return 0;                else return Convert.ToInt32(y2);            }        }    }}
原创粉丝点击