784. 最长公共前缀 II 中文

784. 最长公共前缀 II

中文English

给出n个字符串dic,和一个目标串,输出目标串与这n个字符串的最长公共前缀的长度的最大值。

样例

样例1

输入: dic = ["abcba","acc","abwsf"] and target = "abse"
输出: 2
解释:
"abse"与"abcba"的最长公共前缀为"ab",长度为2,与"acc"最长公共前缀为"a",长度为1,与"abwsf"最长公共前缀为"ab",长度为2,max(2,1,2) = 2。

样例2

输入: dic = ["aaa","bbb","aabb"] and target = "aaab"
输出: 3
解释:
"aaab"与"aaa"最长公共前缀为"aaa",长度为3,与"bbb"最长公共前缀为"",长度为0,与"aabb"最长公共前缀为"aa",长度为2,max(3,0,2) = 3。

注意事项

n个字符串的长度总和sum,1 <= sum <= 50000.每个字符串的长度大于0(即没有空串)。

class Solution:
    """
    @param dic: the n strings
    @param target: the target string
    @return: The ans
    """
    ''' 
    大致思路:
    1.给出一个方法,可以求得目标字符串和当前字符串最长公共部分的长度
    2.根据所有的最长长度,取出最大值出来,返回
    '''
    def the_longest_common_prefix(self,dic,target):
        res = []
        for j in dic:
            res.append(self.get_longest_length(j,target))
        return  max(res)


    def get_longest_length(self,A,target):
        if len(A) < len(target):
            l = len(A)
        else:
            l = len(target)
        count = 0 
        for i in range(l):
            if A[i] == target[i]:
                count += 1
        return count

原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12550915.html