Leetcode(day2) - 7. Reverse Integer

思路一:按照数学方法,取各位十位
思路二:将数字转为字符,再按照字符的反转规则取反

# 1. 将输入的看做一个数,分别从低到高取各位数字
# pop: x % 10
# push: temp = x % 10, num = num*10 + temp
# Runtime: 16 ms, faster than 85.39% of Python online submissions for Reverse Integer.
class Solution(object):
    def reverse(self, x):
        a = abs(x) # the absolute value of x
        num = 0
        while(a != 0):
            #123
            temp = a % 10
            num = num*10 + temp
            a = a // 10
        if x > 0 and num < 2**31:
            return num
        elif x < 0 and num < 2**31:
            return -num
        else:
            return 0
s = Solution()
s.reverse(1235)
5321
# 2. 将数字先转成字符,然后反转
# str[::-1] 取反
# Runtime: 16 ms, faster than 85.39% of Python online submissions for Reverse Integer.
class Solution(object):
    def reverse(self, x):      
        if x<0:
            ret=int("-"+str(-x)[::-1])
        else:
            ret=int(str(x)[::-1])
        if (ret<-2**31 or ret>2**31-1):
            ret=0
        return ret
s = Solution()
s.reverse(1235)
5321
# 字符操作复习
str1 = 'abcdefg'
# 复制一遍全部字符
str1[:]
'abcdefg'
# 反转字符
str1[::-1]
'gfedcba'
# 反转且间隔为2得到新字符
str1[::-2]
'geca'
# 从首个去到倒数第一个
str1[:-1]
'abcdef'
# 从第二个取到最后一个
str1[1:]
'bcdefg'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值