编写一个函数来查找字符串数组中的最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:""
解释:输入不存在公共前缀。
来源:力扣(LeetCode)
我的答案:
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
result = ''
#如果给的数组是空的话就直接返回空了
if len(strs) == 0:
return result
#把数组的第一个元素给result,以后用来接收重复的部分
result = strs[0]
#遍历字符串数组
for i in strs:
#先用result1来接收result的内容,然后清空result
result1 = result
result = ''
#遍历对比之前获取的重复段字符串与当前字符串
for j in range(min(len(result1),len(i))):
#用result来接收重复的部分,然后到下一轮循环的时候传给result1
#如果两个字符串对应的字符相等,就把该字符加给result后面,如果不等就直接退出此轮循环
if result1[j] == i[j]:
result = result + result1[j]
else:
break
return result
结果:
执行结果:通过
执行用时:32 ms, 在所有 Python3 提交中击败了77.17%的用户
内存消耗:15.1 MB, 在所有 Python3 提交中击败了19.51%的用户
通过测试用例:123 / 123
大佬答案:
这个利用了min()和max()对字符串的判断
max和min函数:函数功能为取传入的多个参数中的最大/最小值,或者传入的可迭代对象元素中的最大/最小值。默认数值型参数,取值大/小者;字符型参数,取字母表排序靠后/前者(数字较字母靠前)。还可以传入命名参数key,其为一个函数(如传入key=len就是计算最长/最短字符串),用来指定取最大值的方法。default命名参数用来指定最大值不存在时返回的默认值。
class Solution:
def longestCommonPrefix(self, strs):
if not strs:
return ""
s1 = min(strs)
s2 = max(strs)
for i,x in enumerate(s1):
if x != s2[i]:
return s2[:i]
return s1