python又wa了 大佬求助

P1307 [NOIP2011 普及组] 数字反转

pineappe030816 @ 2022-03-29 09:07:03

n = int(input())
m = []
if n > 0:
    n = str(n)
    print(int(n[::-1]))
else:
    for i in str(n):
        m.append(i)
    m.pop(0) # 删除负号
    for i in m[::-1]:
        if i == '0':
            m.pop() # 删除‘0’
    print(int(''.join(map(str, m)))*-1)

by Terrible @ 2022-03-29 09:35:11

我给你改了改 @pineappe030816

n = input()
m = []
if int(n) >= 0:
    print(int(n[::-1]))
else:
    for i in n:
        m.append(i)
    m.pop(0) # 删除负号
    for i in m[::-1]:
        if i == '0':
            m.pop() # 删除‘0’
        else:
            break
    print(int(''.join(map(str, m[::-1])))*-1)

你这个没有特判0的情况,负数没有反转,输入数据的前导零没有保留。

还是有点啰嗦,你可以看看我的:

a=input()[::-1].lstrip('0') # 反转去前导0
if a=='':a='0' # 特判该数就是零的情况
if a[-1]=='-':a='-'+a[:-1]# 该数是负数,符号提前
print(a)

by pineappe030816 @ 2022-03-29 10:38:13

@Terrible 好的解决了 你是我大哥(拜谢


by 量子少女希儿 @ 2022-03-29 12:19:14

???


by xiaomimxl @ 2022-03-29 13:07:34

头像撞了


|