0014: Longest Common Prefix

Problem Statement

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: strs = ["flower","flow","flight"]
Output: "fl"

Example 2:

Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.

Constraints:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] consists of only lowercase English letters if it is non-empty.

Code Solution

class Solution:
    def longestCommonPrefix(self, strs):
        smin = min(strs, key=len)
        for ix, c in enumerate(smin):
            if len(set([s[ix] for s in strs])) != 1:
                return smin[:ix]
        return smin