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.




 class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:


        prefix = strs[0]

        for st in strs:

            new_pref = ""

            min_len = min(len(prefix), len(st))

            for i in range(min_len):
                if st[i] == prefix[i]:
                    new_pref += st[i]
                else:
                    break

            if new_pref == "":
                return ""
            else:
                prefix = new_pref

        return prefix

Random Note


Floyd's Tortoise and Hare is used to detect linked list cycle.