我对模式匹配或识别完全陌生。我的问题是,如果我有一系列字符串,比如str1:ABCAAAAAAAEFG,str2:ABCBBBBBBBBCC,str3:SSSCCCCCCCCEFG等。 我想比较字符串并找出相同位置的共享模式。
例如,我想将str1与str2进行比较,匹配的结果是从头开始有共享模式:ABC。第二步是将str1与str3进行比较,结果是存在一个碎片模式:来自末尾的EFG。我想对我的集合中的每两对进行这种比较:(str1,str2),(str1,str3),(str2,str3)。等。
如何以编程方式执行此操作。我的问题可能过于笼统,但我对这个领域全新,我需要知道是否已经有一些工具或功能可以帮助我有效地完成这项工作。
编辑:1)通常,字符串具有相同的长度。
答案 0 :(得分:0)
编写自己的程序来执行此操作应该不难。
两个字符串从0开始比较。如果!=移动到下一个索引,否则标记它是匹配并移动到下一个char。继续前进,直到它们不匹配并记下匹配的子串。您可以跳到字符串中的下一个索引,因为您知道如果您从0-n匹配,那么从1开始仍然会在n处断开并且长度更小。
哦,我希望你没有太多字符串,因为如果你想匹配每一对,你需要做n(n+1)/2 comparisons。