《算法小白历险记》3.最长公共前缀【python-简单】

举报
不吃西红柿 发表于 2022/07/21 00:52:32 2022/07/21
【摘要】 🍅 粉丝专属福利:简历模板、PPT模板、学习资料、面试题库。直接去文末领取 🍅 如觉得文章不错,欢迎点赞、收藏、评论 题目: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。   示例 1: 输入:strs = ["flower","flow","flig...

🍅 粉丝专属福利:简历模板、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

 

我的笨办法:

思路:找出最短字符串,以此作为最大角标位。然后遍历对比第一个元素。


  
  1. class Solution:
  2. def longestCommonPrefix(self, strs: List[str]) -> str:
  3. com = ''
  4. str_min = min([len(str) for str in strs])
  5. for i in range(str_min):
  6. one = [str[i] for str in strs]
  7. if len(set(one))==1:
  8. com = com + one[0]
  9. else:
  10. break
  11. return com

大神的办法:

解题思路

先找出数组中字典序最小和最大的字符串,最长公共前缀即为这两个字符串的公共前缀

~J5{I}[]G{FG3AA1KHBS5W1.png


  
  1. class Solution:
  2. def longestCommonPrefix(self, strs: List[str]) -> str:
  3. if not strs: return ""
  4. str0 = min(strs)
  5. str1 = max(strs)
  6. for i in range(len(str0)):
  7. if str0[i] != str1[i]:
  8. return str0[:i]
  9. return str0

鬼才!可太秀了。

 在这里插入图片描述

粉丝专属福利

🍅 行业资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 交流加群:大佬指点迷津,你的问题往往有人遇到过,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 学习资料:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、前端等。

👇👇👇👇👇👇👇 

文章来源: notomato.blog.csdn.net,作者:不吃西红柿丶,版权归原作者所有,如需转载,请联系作者。

原文链接:notomato.blog.csdn.net/article/details/119823673

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。