可以用以下的 Python 代码实现:
def remove_partially_matched(strings):
# 先按字符串长度递减排序
strings.sort(key=len, reverse=True)
# 用集合存储结果,遇到部分匹配的字符串则跳过
result = set()
for s in strings:
if not any(s in r for r in result):
result.add(s)
# 返回结果按照原来的顺序排序
return sorted(result, key=lambda s: strings.index(s))
# 测试代码
strings = ['abc', 'abcd', 'bcde', 'cde', 'cd', 'def']
print(remove_partially_matched(strings)) # 输出 ['abcd', 'bcde', 'def']
首先,我们按照字符串长度递减排序。然后,用集合存储结果。对于每个字符串,如果它不是任何一个结果字符串的子串,则将其添加到结果集合中。最后,按照原来的顺序返回结果字符串。
上一篇:保留最新记录删除重复记录
下一篇:保留最长子字符串,如果条件匹配。