这个题目改来改去还是有问题,运行告诉我是第一行左右有问题(代码放在最后的图片里了)
但是我改成list1=eval(input())也好像不行
在这个改正过程中我还有几个问题:
1.list1=eval(input())
list1=list(list1)和list=list(map(int,input().split(",")))有什么区别
2.为什么在已经有while n>1的代码里还要在上一行加一个if n>1
写的错误的代码
其实如果删除的元素比较多,那么动态删除不是一个最优解。就像你的代码一样,你代码里的n变量是有问题的,因为在删除一个元素后,你需要重新获取一次n, 要不然,可能程序会一直在运行。
我建议:
你先遍历一遍你的list, 如果是第一次遍历,那么就直接插入到一个新列表里,并且在一个dict里标记这个值已经有了,这样每次我们只需要到这个DICT里查下,就知道当前的元素是不是有重复。这样的话基本上遍历一遍就出结果了。另外,从高往低遍历。