描述
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
数据范围: 1<n<10**8
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入:
9876673
复制输出:
37689
python 2实现方法: 先把输入的数据按照输入顺序倒序 tnum = num[::-1] 然后用for循环遍历每一个数字,存入一个新的字符串,如果该数字在新字符串已经存在则pass。
#/usr/bin/python
#-*- coding:utf-8 -*-
while True:
try:
res = ""
num = raw_input()
tnum = num[::-1]
if int(num) < 1 or int(num) >10**8 or int(num[-1]) == 0:
raise Exception
for i in tnum:
if i in res:
pass
else:
res = res + i
print int(res)
except Exception:
break
其他的想法:
本来想用集合来做,集合虽然可以去重,但是取出来的数字是无序的,我们可以转换为列表再按照输入的顺序逆序排列
#!/usr/bin/python
#-*- coding:utf-8 -*-
s = raw_input()[::-1]
ls = list(set(s))
ls.sort(key = s.index)
print ''.join(ls)