当前位置: 首页 > 面试题库 >

从一组(相似)字符串中确定前缀

程树
2023-03-14
问题内容

我有一组字符串,例如

my_prefix_what_ever
my_prefix_what_so_ever
my_prefix_doesnt_matter

我只是想找到这些字符串中最长的公共部分,这里是前缀。在上面的结果应该是

my_prefix_

琴弦

my_prefix_what_ever
my_prefix_what_so_ever
my_doesnt_matter

应该导致前缀

my_

Python中是否有一种相对轻松的方法来确定前缀(而不必手动遍历每个字符)?

PS:我正在使用Python 2.6.3。


问题答案:

永远不要重写提供给您的内容os.path.commonprefix

返回最长的路径前缀(一个字符一个字符),它是列表中所有路径的前缀。如果列表为空,则返回空字符串('')。请注意,这可能返回无效路径,因为它一次可以处理一个字符。

为了与其他答案进行比较,下面是代码

# Return the longest prefix of all list elements.
def commonprefix(m):
    "Given a list of pathnames, returns the longest common leading component"
    if not m: return ''
    s1 = min(m)
    s2 = max(m)
    for i, c in enumerate(s1):
        if c != s2[i]:
            return s1[:i]
    return s1


 类似资料:
  • 本文向大家介绍C ++中的相似字符串组,包括了C ++中的相似字符串组的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个字符串X和Y,如果可以交换X的两个字母,它们是相似的,因此等于Y。另外,如果两个字符串X和Y相等,则它们相似。例如,考虑两个字符串,例如“ tars”和“ rats”相似,如果我们交换t和r,则可以找到另一个,现在“ rats”和“ arts”相似,但是“ star”不同类

  • 本文向大家介绍C ++中的K相似字符串,包括了C ++中的K相似字符串的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个字符串A和B。如果我们可以将A中的两个字母的位置恰好交换K次,使得结果字符串为B,那么这两个字符串是K相似的(其中K是一个非负整数)。在两个字谜A和B之间,我们必须找到与A和B类似的最小K。 因此,如果输入类似于A =“ abc”,B =“ bac”,则输出将为2。 为了解

  • 问题内容: 我想将多个字符串相互比较,并找到最相似的字符串。我想知道是否有任何库,方法或最佳实践会返回我哪些字符串与其他字符串更相似的字符串。例如: “The quick fox jumped” -> “The fox jumped” “The quick fox jumped” -> “The fox” 该比较将返回第一个比第二个更相似。 我想我需要一些方法,例如: 某处有这样的东西吗? 编辑:

  • 问题内容: 我有一个像这样的数组: 我要做的是删除“苹果”。 我的问题很基本,但是,我搜索了网站,发现java并不真正支持从数组中删除功能。我还听说过使用Java Utils,因为删除项目非常简单…。我试图在Google上找到Java Utils,但是几乎所有链接都消失了。 所以最后…有什么方法可以从字符串数组中删除字符串? 即使我使用ArrayList,也找不到在其中生成随机项的方法!例如:在普

  • 我使用Levenshtein算法来查找两个字符串之间的相似性。这是我正在制作的程序的一个非常重要的部分,所以它需要有效。问题是算法没有发现以下示例相似: CONAIR AIRCON 编辑:我还研究了“Damerau-Levenshtein”算法,它增加了换位。问题是这种转换只针对相邻的字符(而不是多个字符)。

  • 问题内容: 我有一组字符串,并且其中的所有字符串都有两个特定的子字符串,这些子字符串是我不需要的并且想要删除。 输入示例: 所以基本上我希望从所有字符串中删除和子字符串。 我试过的 但这似乎根本不起作用。输出绝对没有变化,它与输入相同。我尝试使用原始版本,但没有任何改变。 问题答案: 字符串是不可变的。(python 2.x)或(python 3.x)创建一个 新 字符串。在文档中对此进行了说明: