leedcode 寻找公共前缀

第一版 用find函数 但不能找出开头有重复的

复制代码
class Solution:#不能找开头有重复的
    def longestCommonPrefix(self, strs):
        str_num=len(strs)
        com_list=list()
        min_len=100
        for i in strs:
            min_len_temp=len(i)
            if min_len_temp<min_len:
                min_len=min_len_temp

        count=0
        fail_count=0
        for i in range(min_len):
            count=0
            for j in range(str_num-1):
                if strs[0][i]!=strs[j+1][i]:
                    count=0
                    print(f'{strs[0]}中的{strs[0][i]}与{strs[j+1]}中的{strs[j+1][i]}比对失败')
                    fail_count+=1
                    continue
                elif strs[0][i]==strs[j+1][i] and fail_count==0:
                    count+=1
                    print(f'{strs[0]}中的{strs[0][i]}与{strs[j + 1]}中的{strs[j + 1][i]}比对成功,成功次数为{count}')
            if count==min_len-1:
                com_list.append(strs[0][i])

        #print(len(com_list))
        if len(com_list)==0:
            none_str=""
            #print(none_str)
            return none_str
        else:
            str_total=str()
            for i in range(len(com_list)):
                str_total+=com_list[i]
            print(str_total)
            return str_total


strs = ["aa","aar"]
#strs = ["faower","floo",'flow','floght']
sol = Solution().longestCommonPrefix(strs)
复制代码

第二版 实现功能

复制代码
class Solution:
    def longestCommonPrefix(self, strs):
        str_num=len(strs)
        com_list=list()
        min_len=100
        for i in strs:
            min_len_temp=len(i)
            if min_len_temp<min_len:
                min_len=min_len_temp

        #count=0
        fail_count=0
        for i in range(min_len):
            count=0
            for j in range(str_num-1):
                if strs[0][i]!=strs[j+1][i]:
                    count=0
                    print(f'{strs[0]}中的{strs[0][i]}与{strs[j+1]}中的{strs[j+1][i]}比对失败')
                    fail_count+=1
                    continue
                elif strs[0][i]==strs[j+1][i] and fail_count==0:
                    count+=1
                    print(f'{strs[0]}中的{strs[0][i]}与{strs[j + 1]}中的{strs[j + 1][i]}比对成功,成功次数为{count}')
            if count==str_num-1:
                com_list.append(strs[0][i])

        #print(len(com_list))
        if len(com_list)==0:
            none_str=""
            #print('空')
            return none_str
        else:
            str_total=str()
            for i in range(len(com_list)):
                str_total+=com_list[i]
            #print(str_total)
            return str_total


#strs = ["aa","aar"]
strs = ["flower","flow","flight"]
sol = Solution().longestCommonPrefix(strs)
复制代码

 

posted @   Junior_bond  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示