Python 中的最长公共前缀


假设我们有一个数组中的字符串集合。我们必须找到数组中字符串之间的最长公共前缀。这里我们将假定所有字符串都是小写字符串。如果不存在公共前缀,则返回 “”。

因此,如果一个字符串数组类似于 ["学校", "时间表", "苏格兰"],那么最长公共前缀是 “sc”,因为所有这些字符串中都存在 “sc”。

要解决此问题,我们将第一个字符串作为 curr,现在从数组中获取每个字符串并逐个字符地读取它们,并逐个检查 curr 和所取字符串之间的字符。如果它们相同,则进行下一个字符;否则,中断循环,并将 curr 更新为匹配的子字符串。

让我们看看实现以获得更好的理解

示例(Python)

 在线演示

class Solution(object):
   def longestCommonPrefix(self, strs):
      """
      :type strs: List[str]
      :rtype: str
      """
      if len(strs) == 0:
         return ""
      current = strs[0]
      for i in range(1,len(strs)):
         temp = ""
         if len(current) == 0:
            break
         for j in range(len(strs[i])):
            if j<len(current) and current[j] == strs[i][j]:
               temp+=current[j]
            else:
               break
         current = temp
      return current
input_list = ["school","schedule","scotland"]
ob1 = Solution()
print(ob1.longestCommonPrefix(input_list))

输入

["school","schedule","scotland"]

输出

"sc"

更新于: 2020 年 4 月 28 日

6K+ 次浏览

启动你的 职业

通过完成课程获得认证

开始
广告