《算法小白历险记》3.最长公共前缀python-简单
Posted 不吃西红柿丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《算法小白历险记》3.最长公共前缀python-简单相关的知识,希望对你有一定的参考价值。
🍅 粉丝专属福利:简历模板、PPT模板、学习资料、面试题库。直接去文末领取
🍅 如觉得文章不错,欢迎点赞、收藏、评论
题目:
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2: 输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。 提示: 1 <= strs.length <= 200 0 <= strs[i].length <= 200 strs[i] 仅由小写英文字母组成 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-common-prefix
我的笨办法:
思路:找出最短字符串,以此作为最大角标位。然后遍历对比第一个元素。
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
com = ''
str_min = min([len(str) for str in strs])
for i in range(str_min):
one = [str[i] for str in strs]
if len(set(one))==1:
com = com + one[0]
else:
break
return com
大神的办法:
解题思路
先找出数组中字典序最小和最大的字符串,最长公共前缀即为这两个字符串的公共前缀
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs: return ""
str0 = min(strs)
str1 = max(strs)
for i in range(len(str0)):
if str0[i] != str1[i]:
return str0[:i]
return str0
鬼才!可太秀了。
粉丝专属福利
🍅 行业资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 交流加群:大佬指点迷津,你的问题往往有人遇到过,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 学习资料:含编程语言、算法、大数据生态圈组件(mysql、Hive、Spark、Flink)、数据仓库、前端等。👇👇👇👇👇👇👇
以上是关于《算法小白历险记》3.最长公共前缀python-简单的主要内容,如果未能解决你的问题,请参考以下文章