Ruka
2 min readMar 20, 2020

[LeetCode][python3]0014. Longest Common Prefix

Start the journey
N2I -2020.03.18

  1. My first Solution
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if strs:
min_len=len(min(strs,key = len))
for i in range(min_len):
c=min(strs,key = len)[i]
for s in strs:
if s[i]!=c:
if i==0:
return ""
return min(strs,key = len)[0:i]
break
return min(strs,key = len)
else:
return ""
N2I -2020.03.18

Explanation:

A normal way to think about this problem. The solution compares chars from the smallest length string of strs to other strings in strs. The for loop will stop when someone diff from the compare.

2. A better Solution

class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:return ""
m,M,i=min(strs),max(strs),0
for i in range (min(len(m),len(M))):
if m[i]!=M[i]:break
else:
i=i+1
return m[:i]
N2I -2020.03.18

Explanation:

The solution takes advantage from the “Comparative of String objects”. The biggest different in sequence will appear in the comparison of min(strs) and max(strs). That is why the solution only compares those two strings in list. It is same idea when you check out the first vocabulary and the last vocabulary in your English Dictionary and you will confirm every vocabulary between them will share the same prefix if the first and the last vocabulary shares them.

Ruka
Ruka

Written by Ruka

HI I’m Ruka. Now a SWE in Taiwan. Contact via email: nayzi9999@gmail.com

No responses yet