• [LeetCode][Python][C#]刷题记录 7.反转整数


    题目:

    给定一个 32 位有符号整数,将整数中的数字进行反转。

    示例 1:

    输入: 123
    输出: 321
    

     示例 2:

    输入: -123
    输出: -321
    

    示例 3:

    输入: 120
    输出: 21
    

    注意:

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

    思路:这个代码其实我提交一次错一次才知道思路。。刚开始用余数和整除把百十位分开然后再合起来,很麻烦,条件很多。

    直接转成字符串,再通过[::-1]的写法把字符串反转,很方便而且代码也很少。

    1.  转成字符串
    2. 判断第一个字符是否为‘-’ ,即是是否为负号
    3. 如果是负号就从下标为1的字符切片(主要为了去掉负号),并且用[::-1]反转字符串,这里[::-1]的意思就是从开始到结束,每次以-1的step取值。
    4. 如果正好从下标为0开始切片。反转完成后转换成整型,因为题目要求有取值范围,所以要判断是否>2147483647或<-2147483647
    5. 完成

    代码:

    python

    class Solution:
        def reverse(self, x):
            """
            :type x: int
            :rtype: int
            """

         # 转成字符串
    b = str(x)   if b[0] == '-': b = b[1:][::-1] b = -int(b) if b < -2147483647: return 0 else: return(b) else: b = b[::-1] b = int(b) if b > 2147483647: return 0 else: return(b)

     c#

    public class Program
        {
            public int Reverse(int x)
            { 
                string strx = x.ToString();
                int result;
                int length = strx.Length;
                if (strx[0] == '-')
                {
                    strx = strx.Substring(1,length-1);
                    var revx = strx.Reverse().ToArray();
                    string a = new string(revx);
                    if (int.TryParse(a, out result))
                    {
                        return -result;
                    }
                    else
                    {
                        return 0;
                    }
                }
                else
                {
                    var revx = strx.Reverse().ToArray();
                    string a = new string(revx);
                    if (int.TryParse(a, out result))
                    {
                        return result;
                    }
                    else
                    {
                        return 0;
                    }
                }
                
    
            }
            static void Main(string[] args)
            {
                int x = -1534236469;
                Program pro = new Program();
                int a  = pro.Reverse(x);
                Console.WriteLine(a);
                Console.ReadKey();
            }
        }
  • 相关阅读:
    hdu 3786 寻找直系亲属
    about the plan
    2013 ACM/ICPC Asia Regional Online —— Warmup1 1005 Balls Rearrangement
    poj 1833 给poj跪了 字典排序
    20170630总结
    20170701总结
    20170628总结
    20170629总结
    20170626总结
    20170627总结
  • 原文地址:https://www.cnblogs.com/babydoll/p/9584359.html
Copyright © 2020-2023  润新知