算法:整数反转(c#实现)

题目描述:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321

 示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

C#代码实现如下

 public class Solution
    {
        public int Reverse(int x)
        {
            try
            {
                if (x < 0)
                {
                    x = -x;
                    string stringX = x.ToString();
                    StringBuilder sb = new StringBuilder();
                    List<char> tempX = new List<char>();
                    foreach (char c in stringX)
                    {
                        tempX.Add(c);
                    }
                    tempX.Reverse();
                    foreach(var c in tempX)
                    {
                        sb.Append(c);
                    }
                    int temp = Convert.ToInt32(sb.ToString());
                    return -temp;
                }
                else
                {
                    string stringX = x.ToString();
                    StringBuilder sb = new StringBuilder();
                    List<char> tempX = new List<char>();
                    foreach (char c in stringX)
                    {

                        tempX.Add(c);
                    }

                    tempX.Reverse();
                    foreach (char c in tempX)
                    {
                        sb.Append(c);
                    }
                    int temp = Convert.ToInt32(sb.ToString());
                    return temp;
                }
            }
            catch
            {
                return 0;
            }        
        }
    }

猜你喜欢

转载自blog.csdn.net/u011214654/article/details/84965983