def remove_repeated(seq):
seen = set()
seen_add = seen.add
return [x for x in seq if not (x in seen or seen_add(x))]
print(''.join(remove_repeated(found)))
这个解可能更长,但它有更好的渐近性
否则,可以按index对字符串进行排序:
>>> sorted([word for word in sieve if word in s], key=lambda word: s.index(word))
def SieveString(s,sieve):
zipped = zip(sieve,[s.index(word) for word in sieve if word in s])
zipped.sort(key=lambda x:x[1])
return ''.join(word for word,index in zipped)
如果要保持字符串在
s
中出现的顺序,可以执行以下操作:然后您必须remove the repeated strings:
这个解可能更长,但它有更好的渐近性
否则,可以按
index
对字符串进行排序:下面是我想到的最优雅的方式:
假设输入字符串中单词的顺序应反映在输出字符串中:
相关问题 更多 >
编程相关推荐