逆序除重

逆序除重

输入一个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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值