Easy 5 – 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

我的版本:

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        common_prefix = ""
        while "" not in strs:
            first_letter = []
            for position, str in enumerate(strs):
                first_letter.append(str[0])
                strs[position] = str[1:]
            if len(list(set(first_letter))) == 1:
                common_prefix += first_letter[0]
            else:
                break
        return common_prefix

从结果来看问题倒是不大,执行用时32ms,内存消耗14.8M。

然后看到评论区的一个解法真的很厉害:

利用python的max()和min(),在Python里字符串是可以比较的,按照ascII值排(举例:abb, aba,abac,最大为abb,最小为aba),所以只需要比较最大最小的公共前缀就是整个数组的公共前缀。

这个思路真的很牛批,但是跑出来的结果来看和我的差不多,嘻嘻。

我还是挺喜欢写代码解决问题的感觉的,当然了,机器学习除外。

Leave a Reply