【问题标题】:Cut duplicate words from text从文本中删除重复的单词
【发布时间】:2012-12-14 00:25:10
【问题描述】:

我有以下字符串的文本:

{whatever}:::duplicateString:::{whatever}
{whatever}:::duplicateString:::{whatever}
....
{whatever}:::duplicateString:::{whatever}
{whatever}:::duplicateString:::{whatever}

如何从文本中删除 duplicateString:主要思想是从行中删除第二个单词,如果它出现超过一次。

第一个想法是逐行读取它们并用“:::”分割,以便创建数组并通过向 TreeSet 添加条目来迭代数组。好的。但是如何再次粘线呢?

我不记得任何机制来解决这样的任务.. 语言无关紧要,只是近似解决方案?

示例文本:

Appliances:::Main
Appliances:::Main:::Appliance Warranties
Appliances:::Main:::Beer Keg Refrigerators
Appliances:::Main:::Beverage Refrigerators
Appliances:::Main:::Ceiling Fans & Accessories
Appliances:::Main:::Ceiling Fans & Accessories:::Accessories
Appliances:::Main:::Ceiling Fans & Accessories:::Accessories:::Downrod Couplers
Appliances:::Main:::Ceiling Fans & Accessories:::Accessories:::Downrods
Appliances:::Main:::Ceiling Fans & Accessories:::Accessories:::Fan Replacement Blades

理想情况下它必须是这样的:

Appliances:::Main
Appliances:::Appliance Warranties
Appliances:::Beer Keg Refrigerators
Appliances:::Beverage Refrigerators
Appliances:::Ceiling Fans & Accessories
Appliances:::Ceiling Fans & Accessories:::Accessories
Appliances:::Ceiling Fans & Accessories:::Accessories:::Downrod Couplers
Appliances:::Ceiling Fans & Accessories:::Accessories:::Downrods
Appliances:::Ceiling Fans & Accessories:::Accessories:::Fan Replacement Blades

【问题讨论】:

  • 很难确定您在此处寻找的确切内容。您能否在 之前和 之后显示您的字符串,以便更清楚?
  • 所以在第一行你不想删除这个词。
  • 是的。只是重复了第二个单词,保存剩余行。如果单词只在第一行 - 没有重复 =)
  • 我刚刚更新了我的答案,以反映您想要删除与上一行相同的单词。我认为您需要对此进行一些变化。
  • 主要思想是如果第二个单词出现超过一次,则从行中删除它

标签: string duplicate-removal


【解决方案1】:

如果 duplicateString 可能仅作为第二个单词出现,您可以这样做(在 Python 中):

lastWord = None
for line in open('file.txt'):
  w = line.split(':::')
  thisWord = w[1]
  if lastWord==w[1]:
    del w[1]
  lastWord = thisWord
  print ':::'.join(w)

【讨论】:

  • 在 duplicateString 之前只有一个单词,但之后可以出现任意数量的单词,用 ":::" 分隔
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多