LeetCode-14 / 220316

https://leetcode.com/problems/longest-common-prefix/

Python

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if len(strs) == 0: 
        	return ''
        minStr = min(strs, key = len)
        for i, x in enumerate(minStr):
        	for other in strs:
            	if other[i] !=x:
                	return minStr[:i]
        return minStr
  1. minStr = strs안의 가장 짧은 항목
  2. enumerate를 사용하여 strs 안의 string 을 i번째 문자부터 minString과 비교
  3. 다른 문자가 발견되었을 경우 minStr의 문자를 i번째까지 return

Java

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs.length == 0) return "";
        String prefix = strs[0];
        for (int i =1; i < strs.length; i ++){
            while (strs[i].indexOf(prefix) != 0){
                prefix = prefix.substring(0, prefix.length() -1);
            }
        }
        return prefix;
    }
}

Python의 방법과 다르게 strs의 첫번째 항목을 접두사로 설정하고 strs 안의 다른 항목들과 비교해가며 글자 수를 하나씩 줄이는 방식으로 해결

좋은 웹페이지 즐겨찾기