본문 바로가기
코딩 테스트

[LeetCode] 14.Longest Common Prefix (Python)

by zoodi 2025. 1. 15.
728x90

1.문제

https://leetcode.com/problems/longest-common-prefix/?envType=study-plan-v2&envId=top-interview-150

2.풀이

1) 주어진 리스트의 원소를 길이순으로 정렬한다.

2) 가장 짧은 단어를 기준으로 순환하여 비교한다.

3) 반복문을 돌면서 해당 index 의 단어와 첫번째 단어의 index 가 동일한지 체크하고 동일하지 않다면 그 부분까지 substring 해서 반환한다.

 

3.코드

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
  
        if (len(strs) == 0):
            return ""
  
        if (len(strs) == 1):
            return strs[0]

        strs.sort(key=len)
        if (strs[0] == ""):
            return ""

        #no common prefix
        if (strs[0][0] != strs[1][0]):
            return ""

        for i in range(len(strs[0])):
            for j in range(1, len(strs)):
                if (strs[0][i] != strs[j][i]):
                    return strs[0][:i]

        return strs[0]
728x90

댓글