[leetcode] Array/String (Easy) - 14. Longest Common Prefix

brandon·2025년 7월 9일
0

leetcode-array/strings

목록 보기
19/20

Intuition

답안 1

class Solution {
    public String longestCommonPrefix(String[] strs) {
        String prefix = ""; 
        String shortestWord = ""; 
        Integer shortestLength = Integer.MAX_VALUE;
        for (int i = 0; i < strs.length; i++) {
            if (shortestLength > strs[i].length()) {
                shortestLength = strs[i].length(); 
                shortestWord = strs[i]; 
            }
        }

        String longestPrefix = ""; 

        for (int i = 0; i < shortestWord.length(); i++) {
            for (int j = 0; j < strs.length; j++) {
                if(!strs[j].startsWith(longestPrefix + shortestWord.charAt(i))) {
                    return longestPrefix;
                }
            }    
            
            longestPrefix = longestPrefix + shortestWord.charAt(i);
        }

        return longestPrefix;
    }
}

답안 2

class Solution {
    public String longestCommonPrefix(String[] strs) {
        String longestPrefix = ""; 

        for (int i = 0; i < strs[0].length(); i++) {
            for (int j = 0; j < strs.length; j++) {
                if(!strs[j].startsWith(longestPrefix + strs[0].charAt(i))) {
                    return longestPrefix;
                }
            }    

            longestPrefix = longestPrefix + strs[0].charAt(i);
        }

        return longestPrefix;
    }
}

답안 3

class Solution {
    public String longestCommonPrefix(String[] strs) {
        String longestPrefix = strs[0]; 

        for (int i = 1; i < strs.length; i++) {
            while(!strs[i].startsWith(longestPrefix)) {
                longestPrefix = longestPrefix.substring(0, longestPrefix.length() - 1);
                if (longestPrefix.length() == 0) {
                    return "";
                }
            }
        }

        return longestPrefix;
    }
}
  • 가장 처음 두개를 비교해서 longest prefix를 찾는다.
    • 만약 longest perfix가 ""라면 ""를 return한다.
  • 그렇게 계속 strs를 돌면서 prefix가 안된다면 또 현재 prefix의 substring이 prefix가 되게 만들어 prefix를 업데이트 시켜준다.
profile
everything happens for a reason

0개의 댓글