题目描述
给定一个整数 N N N,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。
输入格式
一个整数 N N N。
输出格式
一个整数,表示反转后的新数。
输入输出样例
输入
123
输出
321
说明/提示
【数据范围】
-1,000,000,000\\leq N\\leq 1,000,000,000 。
方式
代码
python
class Solution:
@staticmethod
def oi_input():
"""从标准输入读取数据"""
num = input().strip()
return num
@staticmethod
def oi_test():
"""提供测试数据"""
return "123"
@staticmethod
def solution(num):
if num == '0':
print(0)
else:
sign = '-' if num.startswith('-') else '' # 符号
num_str = num[1:] if sign else num # 数值
reversed_str = num_str[::-1].lstrip('0') # 反转加除去左边的零
print(sign + reversed_str)
oi_input = Solution.oi_input
oi_test = Solution.oi_test
solution = Solution.solution
if __name__ == '__main__':
num = oi_test()
# num = oi_input()
solution(num)
流程图
是 否 是 否 开始 输入数字字符串num num == '0'? 输出0 提取符号sign
sign = '-' if num以'-'开头 else '' 提取数值部分num_str
num_str = num[1:] if sign存在 else num 反转并去除前导零
reversed_str = num_str[::-1].lstrip('0') reversed_str为空? reversed_str = '0' 保持reversed_str不变 组合结果: sign + reversed_str 输出最终结果 结束