[NOIP2011 普及组] 数字反转
题目描述
给定一个整数 N N N,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。
输入格式
一个整数 N N N。
输出格式
一个整数,表示反转后的新数。
样例 #1
样例输入 #1
123
样例输出 #1
321
样例 #2
样例输入 #2
-380
样例输出 #2
-83
提示
【数据范围】
-1,000,000,000<= N<=1,000,000,000 。
得分100,but unaccepted
def f(l):
l.reverse()
for i in range(len(l)):
if l[i]!='0':
return l[i:]
break
continue
N=list(input())
if N[0]=='-':
N.remove('-')
a=''.join(f(N))
print(f'-{a}')
else:
a=''.join(f(N))
print(f'{a}')
第一次测评的时候,虽然得分100,但显示Unaccepted,之后去看没通过的输出信息,发现输出0,但之前代码如果遇到0,都被切片掉了,所以,但输入‘0’的话,代码会报错。所以要把N=0的情况考虑进去,改后如下:
修改过后,Accepted
def f(l):
l.reverse()
for i in range(len(l)):
if l[i]!='0':
return l[i:]
break
continue
N=list(input())
if N[0]=='-':
N.remove('-')
a=''.join(f(N))
print(f'-{a}')
elif N==['0']:
print(0)
else:
a=''.join(f(N))
print(f'{a}')