题解 | #最长公共前缀#

最长公共前缀

https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param strs string字符串一维数组 
# @return string字符串
#
class Solution:
    def longestCommonPrefix(self , strs: List[str]) -> str:
        # write code here
        """
        step1: 空
        step2: 最长公共前缀长度不超过任一字符串长度,以第一个字符串为标杆,遍历第一个字符串所在为止,取出字符串
        step3: 遍历数组中后续字符串,一次比较其他字符串中相应为止是否为刚取出字符,是,继续,不是或长度不够,从第i位不同,前面是公共前缀
        step4: 遍历结束都相同,最长公共欠怼最多位第一个字符串
        """
        n = len(strs)
        if n == 0:
            return ""
        
        # 遍历第一个字符串的长度
        for i in range(len(strs[0])):
            temp = strs[0][i]

            # 遍历后续字符串
            for j in range(1,n):
                # 比较
                if i == len(strs[j]) or strs[j][i] != temp:
                    return strs[0][0:i]
        # 后续字符串有整个字一个字符串的前缀
        return strs[0]

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务