每日一题10009-反转数字

1.题目详情

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
每日一题10009-反转数字

2.解题思路

1. python中如何实现反转?
2. 正数和负数有什么区别?
3. 如何避免0098这种最高位数为零情况出现?

3.代码实现

import  math
number=(input())
if number.isdigit() and int(number)>=0: #isdigit() 方法检测字符串是否只由数字组成。
    number_new=number[::-1] #反转
    number_result=int(number_new.lstrip("0")) #lstrip() 方法用于截掉字符串左边的空格或指定字符,即截掉0
else:
    # 负数的情况,首先转为正数:
    # 把负号去掉
    # number=number[1:]
    # print("fushu:",number)
    # number_new=-int(number[::-1])#这种写法也可以
    number_result =-int((number[1:][::-1]).lstrip("0"))

print(number_result)

4.知识点

  1. 反转有两种方式:
    使用python中列表里的reverse()方法,实现反转,注意是列表;
    python中列表,字符串,元组都可以用[::-1]实现反转
  2. n.isdigit()判断是否是数字
  3. n.istrip()可截取掉字符串左边的想要截取的东西
  4. 从列表的[1:]开始就可以去掉不好处理的负号了
上一篇:Java描述 LeetCode,剑指 Offer 54. 二叉搜索树的第k大节点


下一篇:C语言 指针类型的强制转换与数据存放