[LeetCode] Longest Common Prefix

黃馨平
Jackycsie
Published in
2 min readSep 16, 2020

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.

解題思考:

這題有一些有趣的小問題,感覺在面白板題時一定會問到,他並沒有要求兩個想法,第一個就是如果是在字串中的有相同的連續字串能否抓出,第二個是如果字串很長,有相同數目的字串該如何解決,上述是面試時,感覺百板題面試官一定會問的題。

那我們這裡主要解決最基礎的問題,首先我們拿第一個字串的第一個字比對,第 2,3 個字串的第一個字,如果相同就以此類推,如果不同就直接跳出,時間複雜度最好就是 O (1),最差就是第一個字串的 O(n)。

Runtime: 24 ms, faster than 63.98%.

Memory Usage: 12.8 MB, less than 58.38%.

有趣的回答,使用 min, max 做 list sort ,再抓 string,非常好理解,但都要先做 sort 會比較消耗時間,程式不好掌握。

結論:

有機會的話,會補充上述 2 個類型的百板題,並補充在下來。

  • 字串中是否有更長的相同字母,而非只能從字首。
  • 承上題,如果字串中有多個相同多的字母,需全部印下來。

--

--

黃馨平
Jackycsie

閱讀本是尋常事,繁華靜處遇知音