python 一边遍历列表一边删除其中的元素会造成列表Index越界的问题。
上网搜了搜解决的办法:
list comprehension 以及 filter的方法比较推荐:
然而我今天写的题(leetcode contest 81),类似两层循环,判断某元素之后的元素是否被其之前的元素包含,如果被包含就删除。
感觉之前提到的方法都不比较难解决,之后就老老实实地开一个删除元素的list最后再一起删除....比较笨
# 默认words从长度大到小排列
delwords = [] for i in range(len(words)): for j in range(i +1 , len(words)): if words[j] in delwords: break if words[j] in words[i] and words[j][-1] == words[i][-1]: delwords.append(words[j])
# 最后一起删除 for i in delwords: words.remove(i)
扫描二维码关注公众号,回复:
1055211 查看本文章
input:words = ["time", "bell", "me", ]
output : ['time', 'bell']