Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string "".
Example 1:
Input: ["flower","flow","flight"] Output: "fl"
Example 2:
Input: ["dog","racecar","car"] Output: "" Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z.
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
nums = len(strs)
str_dict = {}
str_len = []
for i in range(nums):
str_dict[str(i)] = list(strs[i])
str_len.append(len(str_dict[str(i)]))
comm_str = []
if nums > 1: # more than one strs
for char_i in range(min(str_len)):
cur_char = str_dict['0'][char_i]
default = True
for str_j in range(1, nums):
if str_dict[str(str_j)][char_i] != cur_char:
default = False
break
if default:
comm_str.append(cur_char)
else:
break
return ''.join(comm_str)
elif nums == 1: # only one strs
return strs[0]
else: # no strs
return ''
本文介绍了一种算法,用于在一组字符串中找到最长的共同前缀。通过逐字符比较,该方法能够处理多个字符串,并返回它们共享的最长初始子串。如果不存在公共前缀,则返回空字符串。

421

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



