在Python中查找子列表中常见的单词序列

时间:2018-05-23 05:33:30

标签: python python-3.x algorithm list lcs

我有一个嵌套的字符串列表:

    [['Start', 'двигаться', 'другая', 'сторона', 'света', 'надолго', 'скоро'], 
     ['Start', 'двигаться', 'другая', 'сторона', 'света', 'чтобы', 'посмотреть'],
     ['Start', 'двигаться', 'новая', 'планета'],
     ['Start', 'двигаться', 'сторона', 'признание', 'суверенитет', 'израильский'],
     ['Start', 'двигаться', 'сторона', 'признание', 'высот', 'на'],
     ['Start', 'двигаться', 'сторона', 'признание', 'высот', 'оккупировать'],
     ['Start', 'двигаться', 'сторона', 'признание', 'высот', 'Голанский'],
     ['Start', 'двигаться', 'сторона', 'признание', 'и']]

我需要一个算法来查找列表中两个或更多字的第一个最长公共序列(在这种情况下,所有子列表都有两个第一个公共元素{{1} }),从中创建一个字符串,移动到下一个元素,找到下一个两个或更多的最长公共'Start', 'двигаться''сторона', 'света', 'надолго' case)如果子列表具有此公共元素,则从中创建下一个字符串。如果没有共同元素,只需将其余单词添加为单个字符串。等等。如果序列中有一个元素,请将其添加到上一个字符串。单个公共元素也不算作序列。得到的序列可以是任何长度,并且分裂可以从第一个元素开始。欲望输出:

'сторона', 'признание'

我检查了其他LCS主题,但没有找到解决方案。提前谢谢!

0 个答案:

没有答案