【发布时间】:2011-12-25 19:20:29
【问题描述】:
如果我有一个输入字符串和一个数组:
s = "to_be_or_not_to_be"
pos = [15, 2, 8]
我试图在引用原始s 的数组pos 的连续元素之间找到最长的公共前缀。我正在尝试获得以下输出:
longest = [3,1]
我得到这个的方法是通过计算以下对的最长公共前缀:
-
s[15:]是_be和s[2:]这是_be_or_not_to_be给 3 (_be) -
s[2:]是_be_or_not_to_be和s[8:]这是_not_to_be给 1 (_)
但是,如果s 很大,我不想在执行s[x:] 之类的操作时创建多个副本。经过数小时的搜索,我找到了函数buffer,它只保留了输入字符串的一个副本,但我不确定在这种情况下使用它的最有效方法是什么。关于如何实现这一目标的任何建议?
【问题讨论】: