Find the Longest Common Prefix Using Python


The challenge

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.

The solution in Python

def longestCommonPrefix(self, strs: List[str]) -> str:
    # the return string
    prefix = ''

    # break words into groups using `zip` and `*`
    # ["flower","flow","flight"] becomes:
    # (('f', 'f', 'f'), ('l', 'l', 'l'), ('o', 'o', 'i'), ('w', 'w', 'g'))
    for group in zip(*strs):
        # if the characters don't match, then break
        if not all(char==group[0] for char in group):
            break

        # otherwise, grow the prefix
        prefix += group[0]

    # return the prefix
    return prefix