【leetcode】14. 最长公共前缀
文章目录
- 题目
- 题解
- 1. 判断每个字符串对应的每个位置是否相同
- 2. 简化
题目
14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:“”
解释:输入不存在公共前缀。
题解
1. 判断每个字符串对应的每个位置是否相同
class Solution(object):def longestCommonPrefix(self, strs):""":type strs: List[str]:rtype: str"""prefix = []min_len = float("inf")if len(strs) == 1: return strs[0]for str in strs:min_len = min(min_len, len(str))a = 0while a < min_len:for i in range(len(strs) - 1):if strs[i + 1][a] == strs[i][a]:if i >= (len(strs) - 2):prefix.append(strs[i][a])a += 1else:continueelse:return "".join(prefix)return "".join(prefix)
2. 简化
class Solution(object):def longestCommonPrefix(self, strs):""":type strs: List[str]:rtype: str"""s0 = strs[0]for j, c in enumerate(s0):for s in strs:if j == len(s) or s[j] != c:return s0[:j]return s0