逆序除重
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 保证输入的整数最后一位不是0。
方法1:
num = input('请输入一个结尾不为0的数字:\n') #注意输入的最后一位不能是0
list1 = [int(x) for x in num]
list1.reverse()
for i in range(0,len(list1)):
if i+1 != len(list1):
for j in range(i+1,len(list1)):
if list1[j] == list1[i]:
list1[j] = 'x' # 开始这个地方我想用pop的,但是pop掉重复的字符之后,就会导致列表索引变化,后边就会超出索引了,所以用了本方法
else:
pass
else:
break
print('逆序除重的结果为:')
for x in list1:
while isinstance(x,int):
print(int(x),end='')
break
方法2:
num = input()
list1 = list(num)
list1.reverse()
n = list(set(list1)) #set的作用是创建一个无序不重复元素集,需要把它转化为列表
n.sort(key=list1.index,reverse=False) #sort进行排序,这里采用list1中的索引序号进行排序,后边reverse代表是否反序
print(n)
res = ''.join(n) #join的意思:‘x’.join(smth)指的是对字符串smth,以x为分隔符号进行分隔后组成一个新的字符串
print(res)