算法练习之整数反转

 

算法题目:

 

python3代码

class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        tmp =[]
        if isinstance(x, int):
            if x > 0:
                index = len(str(x))
                num=str(x)
                for i in range(0, index):
                    tmp.append(num[i])
                tem = int(''.join(tmp[::-1]))
                # print(type(tem))

                if tem > (2**31-1):
                    return 0
                return tem
            if x < 0:
                num = str(x)
                index = len(num)
                for i in range(0, index):
                    tmp.append(num[i])
                tem = int(''.join(tmp[:0:-1]))
                result = -tem
                if result < (-2 ** 31):
                    return 0
                return result
            if x==0:
                return 0

 

 

总结思路及知识点:

1.题目要求:32位有符号的整数,进行反转

思路:

(1)分情况处理 正整数、负整数、0-9的数字

(2)输入参数为int 类型,返回值也为int类型

(3)数字没有反转的方法,先将int类型的数字转换为字符串,并将其存放到预先定义的空列表中,利用列表的切片功能,对其反转

(4)注意返回值的范围问题

 

2.知识点

(1)数字-->字符串   字符串-->列表

(2)for i  in range (0,len(nums))

(3)字符串拼接   ‘-’+int型的整数  、-123

(4)列表的反转--切片   

切片具体知识点,参考https://blog.csdn.net/xpresslink/article/details/77727507

 

通常一个切片操作要提供三个参数 [start_index:  stop_index:  step]  
start_index是切片的起始位置
stop_index是切片的结束位置(不包括)
step可以不提供,默认值是1,步长值不能为0,不然会报错ValueError。

 

posted @ 2019-01-06 21:50  eosclover  Views(562)  Comments(0Edit  收藏  举报