엔지니어 게시판
LeetCode 솔루션 분류

[Easy - wk1 - Q3] 14. Longest Common Prefix

컨텐츠 정보

본문

14. Longest Common Prefix 


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 lower-case English letters.

관련자료

댓글 6

yuun님의 댓글

  • 익명
  • 작성일
class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        prefix = ''
        if not strs:
            return prefix
        
        mn = 10**10
        for s in strs:
            if len(s) < mn:
                mn = len(s)
        
        i = 0
        while i < mn:
            start = strs[0][i]
            for j in range(1, len(strs)):
                if start == strs[j][i]:
                    continue
                else:
                    return prefix
            prefix+=start
            i+=1
        return prefix

Jack님의 댓글

  • 익명
  • 작성일
class Solution {
    public String longestCommonPrefix(String[] strs) {
        
        if(strs == null || strs.length == 0){
            return "";
        }
        
        for(int i=0; i<strs[0].length(); i++){
            char ch = strs[0].charAt(i);
            for(int j=1; j<strs.length; j++){
                if(i == strs[j].length() || strs[j].charAt(i) != ch){
                    return strs[0].substring(0,i);
                }
            }
        }
        
        return strs[0];
    }
}

Jack님의 댓글의 댓글

  • 익명
  • 작성일
실수로 댓글을 지워서 다시 답글을 달았습니다. 죄송합니다.

Jack님의 댓글

  • 익명
  • 작성일
Python

Runtime: 38 ms, faster than 77.68% of Python3 online submissions for Longest Common Prefix.
Memory Usage: 14 MB, less than 51.33% of Python3 online submissions for Longest Common Prefix.

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        prefix=""
        j=0
        result=False
        
        if len(strs) == 1:
            return strs[0]
        
        strs.sort(key=len)
        
        for s in strs[0]:
            for i in range(1, len(strs)):
                if s == strs[i][j]:
                    result=True
                else:
                    result=False
                    break
            j+=1
            if result:
                prefix+=s
            else:
                break
        return prefix

Chloe님의 댓글

  • 익명
  • 작성일
class Solution(object):
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        if not strs:
            return ""
        shortest = min(strs, key=len)
        for i, ch in enumerate(shortest):
            for other in strs:
                if other[i] != ch:
                    shortest = strs[0][:i]
                    return shortest
        
        return shortest

dawn27님의 댓글

  • 익명
  • 작성일
var longestCommonPrefix = function (strs) {
  let prefixComparer = strs[0];
  let prefix = [];

  if (strs.length === 1) return strs[0];
  if (strs.length === 0) return '';
  if (strs[0][0] !== strs[1][0]) return '';
  if (strs.length <= 2) return strs[0];

  for (let i = 0; i < strs.length; i++) {
    for (let j = 0; j < strs[i].length; j++) {
      if (prefixComparer[j] === strs[i][j]) {
        prefix.push(strs[i][j]);
      } else if (prefixComparer[j] !== strs[i][j]) {
        prefix = prefix.slice(0, j);
      }
    }
  }

  prefix = prefix.join('');

  return prefix.length > 1 ? prefix : '';
전체 396 / 13 페이지
번호
제목
이름

최근글


인기글


새댓글


Stats


  • 현재 접속자 189 명
  • 오늘 방문자 4,953 명
  • 어제 방문자 5,332 명
  • 최대 방문자 11,134 명
  • 전체 회원수 1,048 명
알림 0