Python将字符串组合成尽可能短的字符串?

Python将字符串组合成尽可能短的字符串?,python,algorithm,string,Python,Algorithm,String,如果我有一个字符串列表,我想将它们组合成一个具有重叠字符的字符串。如果没有重叠的字符串,只需将其添加到末尾。这是一个过于简化的版本 input = ['one', 'two'] output = 'twone' 我正在寻找的是一种在输入列表中处理任意数量字符串的方法 谢谢, giodamelio您应该能够使用的修改版本。从您的问题中,我不清楚组合字符串必须满足哪些约束条件(一个字符串是否必须在另一个字符串中嵌入整体,或者一个字符串中的字符是否可以与另一个字符串中的字符混合?),因此我不会为您修

如果我有一个字符串列表,我想将它们组合成一个具有重叠字符的字符串。如果没有重叠的字符串,只需将其添加到末尾。这是一个过于简化的版本

input = ['one', 'two']
output = 'twone'
我正在寻找的是一种在输入列表中处理任意数量字符串的方法

谢谢,

giodamelio

您应该能够使用的修改版本。从您的问题中,我不清楚组合字符串必须满足哪些约束条件(一个字符串是否必须在另一个字符串中嵌入整体,或者一个字符串中的字符是否可以与另一个字符串中的字符混合?),因此我不会为您修改它,但这至少应该足以让您开始


另外,

给出一个简单的例子还不够好。这几乎是(农历)年中最不明确的问题。但是,假设重叠只能发生在端部,并且每个字只测试两次(针对当前输出的每个端),并且您想要最大重叠,那么这将完成以下工作:

[修正错误后编辑]

输出:

[] ''
['one'] 'one'
['two', 'one'] 'twone'
['one', 'two'] 'twone'
['overlap', 'nil'] 'niloverlap'
['nil', 'overlap'] 'overlapnil'
['toad', 'dog', 'rabbit'] 'rabbitoadog'
['frog', 'ogham'] 'frogham'
['ogham', 'frog'] 'frogham'
['hopper', 'grasshopper'] 'grasshopper'
['grass', 'grasshopper', 'person'] 'grasshopperson'
['foooo', 'oooof'] 'foooof'
['oooof', 'foooo'] 'foooof'

给定问题中的图像,您希望得到什么输出?输入是什么?输出是什么?如果是字符串,您应该能够跳过图片,只显示输入的字符串和输出的字符串。如果两个字符串的开头和结尾有多个相同的字符,那么在创建输出字符串时是否应该合并整个重叠?i、 e.
input=['predicate','atelier']
output='predicatelier'
。如果输入字符串中的字符与任何其他字符串中的字符不重叠,您将如何处理这些字符串。我认为你需要进一步澄清你的问题。这个看似神秘的要求有实际的用途吗?看起来很有希望,我会检查一下。谢谢这看起来像是我需要的,但当我看到这页时,我感到非常困惑。(我是代数1的大一学生:|)。我试着慢慢地通过它。再次感谢。你的链接有点疯狂了哪个页面?我链接到两个:还有,什么让你困惑?第一个链接。endswith(“Needleman”)。。。看起来你用了一个破折号而不是连字符。啊,这就是让它困惑的地方。这是维基百科给我的那个页面的URL,endash等等。幸运的是,连字符似乎也同样有效。我已经修复了链接。很抱歉在这个问题上不够具体。我试过了,这正是我想要的。非常感谢。谢谢,我碰到了那个,但它现在修好了。
[] ''
['one'] 'one'
['two', 'one'] 'twone'
['one', 'two'] 'twone'
['overlap', 'nil'] 'niloverlap'
['nil', 'overlap'] 'overlapnil'
['toad', 'dog', 'rabbit'] 'rabbitoadog'
['frog', 'ogham'] 'frogham'
['ogham', 'frog'] 'frogham'
['hopper', 'grasshopper'] 'grasshopper'
['grass', 'grasshopper', 'person'] 'grasshopperson'
['foooo', 'oooof'] 'foooof'
['oooof', 'foooo'] 'foooof'