0

次の文字列を含むテキストがあります。

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

テキストからduplicateStringを削除する方法: 主なアイデアは、複数回発生した場合に行から 2 番目の単語を削除することです。

最初のアイデアは、配列を作成し、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
4

1 に答える 1

1

duplicateString が 2 番目の単語としてのみ発生する可能性がある場合は、(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)
于 2012-12-13T16:00:11.790 に答える