我想合并相似的字符串(单词)(字符串在其他字符串中)。
word
wor
words
wormhole
hole
会:
words
wormhole
由于 wor
与以下内容重叠:word
、words
、wormhole
-wor
被丢弃;
word
重叠于:words
- word
被丢弃;
hole
重叠于:wormhole
- hole
被丢弃;
但是 words
,wormhole
不重叠 - 所以它们保持不变。
我怎样才能做到这一点?
编辑
我的解决方案是:
while read a
do
grep $a FILE |
awk 'length > m { m = length; a = $0 } END { print a }'
done < FILE |
sort -u
但我不知道这是否会导致大型数据集出现问题。
最佳答案
在 ruby 中:
list = %w[word wor words wormhole]
list.uniq
.tap{|a| a.reverse_each{|e| a.delete(e) if (a - [e]).any?{|x| x.include?(e)}}}
关于python - 合并/丢弃重叠的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013024/