LeetCode //14. Longest Common Prefix
发布人:shili8
发布时间:2025-02-11 07:52
阅读次数:0
**LeetCode14: 最长公共前缀**
### 题目描述给定一个字符串数组 `strs`,返回最长的公共前缀。
### 示例* 输入:`["flower","flow","flight"]`
输出: `"fl"`
* 输入:`["dog","racecar","car"]`
输出:`""`
### 思路这个问题可以使用暴力法来解决。我们可以通过比较每个字符串的前缀来找到最长公共前缀。
###代码实现
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: # 如果输入数组为空,则返回空字符串 if not strs: return "" # 初始化最长公共前缀为第一个字符串的前缀 prefix = strs[0] # 遍历剩余的字符串 for s in strs[1:]: # 将当前字符串与最长公共前缀进行比较 while not s.startswith(prefix): # 如果当前字符串不以最长公共前缀开头,则将最长公共前缀缩短为前两个字符 prefix = prefix[:len(prefix) //2] return prefix# 测试用例solution = Solution() print(solution.longestCommonPrefix(["flower","flow","flight"])) # "fl" print(solution.longestCommonPrefix(["dog","racecar","car"])) # ""
### 复杂度分析* 时间复杂度:O(N * M),其中 N 是输入数组的长度,M 是最长字符串的长度。
* 空间复杂度:O(1)
### 总结这个问题可以使用暴力法来解决。我们可以通过比较每个字符串的前缀来找到最长公共前缀。时间复杂度为 O(N * M),空间复杂度为 O(1)。

