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 ''