题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
代码
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
# strs只有一个字符串
if len(strs)==1:
return strs[0]
# 找S1,S2的最长公共前缀
def f(S1,S2):
# 若有一个为空
if S1=='' or S2=='':
return ''
# 短的那个记为S1
if len(S1)>len(S2):
tmp=S2
S2=S1
S1=tmp
# 记录公共前缀的结束位置
right=1
for i in range(len(S1)):
if S1[:right]==S2[:right]:
right+=1
else:
right-=1
break
return S1[:right]
ans=f(strs[0],strs[1])
for i in range(2,len(strs)):
if ans=='':
break
else:
ans=f(ans,strs[i])
return ans
该代码定义了一个函数,用于找出一组字符串中的最长公共前缀。首先检查数组是否只包含一个字符串,然后使用辅助函数比较两个字符串的最长公共前缀。通过迭代数组,将找到的公共前缀与下一个字符串进行比较,更新答案。若找不到公共前缀,返回空字符串。
383

被折叠的 条评论
为什么被折叠?



