LeetCode--最长公共前缀
程序员文章站
2022-12-20 23:33:59
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例1输入: [“flower”,“flow”,“flight”] 输出: “fl”示例2输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。选择第一个作为模板循环比较,在第i次比较时,对比数组中剩余的字符串的第i个字符,与模板字符的第i个是否相同如果有一个不相同、或者剩余字符串长度不够了、或者比较完了,就返回第i位之前的子串def longes...
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例1
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例2
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
- 选择第一个作为模板
- 循环比较,在第i次比较时,对比数组中剩余的字符串的第i个字符,与模板字符的第i个是否相同
- 如果有一个不相同、或者剩余字符串长度不够了、或者比较完了,就返回第i位之前的子串
def longestCommonPrefix(strs):
if not strs: # 在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False
return 'got lost'
sample = strs[0] # 选第一个作为模板
for i in range(len(sample)):
for s in strs[1:]: # 依次遍历其余子串
if i < len(s): # 判断剩余子串长度是否足够
if s[i] != sample[i]: # 如果有一个子串的第i个字符与模板的第i个不相等
if sample[:i] == '': # 一开始就不匹配
return 'There is no common substring'
return sample[:i]
else:
return s[:i]
return sample
if __name__ == '__main__':
pass
print(longestCommonPrefix([]))
print(longestCommonPrefix(["flower", "flow", "flight"]))
print(longestCommonPrefix(["dog", "racecar", "car"]))
本文地址:https://blog.csdn.net/qq_42363032/article/details/107446735