pallas 发表于 2021-10-24 18:35:30

求助大佬关于python最长前缀的问题

1.代码运行后为空
2.代码的意思不是很懂:
   1.stillmatch的作用是什么?还有True和Flase
   2.最后return strs[:start -1],为什么要减1呢?

class Solution:
    def longestCommonPrefix(self, strs: list) -> str:
      start = 1
      stillmatch = True
      while start <= len(strs):

            #将字符串数组第一个字符串之后的字符串分别与第一个字符比较
            for j in range(1, len(strs)):
                if strs[:start] != strs[:start]:
                  stillmatch = False
                  break

            #一旦发现不匹配则可以退出循环
            if not stillmatch:
                break

            #更新比较的字符串前缀的位置
            start += 1

      return strs[:start-1]


其他方法麻烦大佬写个注释,谢谢!!{:10_254:}

pallas 发表于 2021-10-24 18:36:08

最好是其他办法{:10_254:}

pallas 发表于 2021-10-24 22:03:27

这个代码运行也是为空{:10_266:}
class Solution(object):
    def longestCommonPrefix(self, strs):
      """
      :type strs: List
      :rtype: str
      """
      if not strs:
            return ""
      
      strs.sort()
      res = ""
      
      for x, y in zip(strs, strs[-1]):
            if x == y:
                res += x
            else:
                break
      
      return res
页: [1]
查看完整版本: 求助大佬关于python最长前缀的问题