Longest Palindromic Substring string

我的第一种思路是反转整数,反转整数的思路其实有两种,一种是通过字符串反转,一种是整数反转,都需要注意判断反转前反转后的数字没有溢出。
第一种思路:
字符串反转:

class Solution:
    def reverse(self,x):
        if x > 2**32 - 1 or x < -(2**32 - 1):
            return 0
        flag = 0
        if x < 0:
            flag = 1
        s = str(x)
        l = list(s)
        for i in l[::-1]:
            if i == 0:
                l.pop()
            else:
                break
        l.reverse()
        m = ''.join(l)
        n = int(m)
        if flag == 1:
            n = -n
        if n > 2**32  -1 or n < -(2**32 - 1):
            return 0
        return n

第二种思路:
反转整数:

class Solution:
    def reverse(self,x):
        if x > 2**32 - 1 or x < -(2**32 - 1):
            return 0
        temp = x
        m = 0
        while temp :
              m = m * 10 + temp % 10
              temp = temp / 10
        if m > 2**32  -1 or m< -(2**32 - 1):
            return 0
        return m

你可能感兴趣的:(Longest Palindromic Substring string)