做题时出现string index out of range

在解答 给定一个String类型数组,要求写一个方法,返回数组中这些字符串的最长公共前缀。问题中,代码:

class Solution(object):
    def longestCommonPrefix(self, strs):
        if len(strs)>1:   
            for i in range(len(strs)-1):
                if len(strs[i])<len(strs[i+1]):
                    strs[i],strs[i+1]=strs[i+1],strs[i]
                for j in range(len(strs[i+1])):
                    if (strs[i])[j]!=(strs[i+1])[j]:
                        strs[i+1]=strs[i][:j]
            return strs[-1]
                    
        elif len(strs)==1:
            return strs[0]
        else:
            return ""

出现Line 8: IndexError: string index out of range错误
请问是什么原因,谢谢各位

阅读 23.2k
2 个回答

第 7 行的 for 循环到最后一次时,第 8 行 strs[i+1] 就会数组下标越界。

os.path.commonprefix方法
源代码:

def commonprefix(m):
    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
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题