코딩테스트

14. Longest Common Prefix

nayoon 2024. 2. 14. 23:32

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

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

 

/**
    1. 문제 해석하기
    가장 긴 공통 prefix를 찾는 문제이고 없으면 "" 반환
    2. 문제 풀이 방향
    이중 for문으로 풀고 만약 common prefix가 ""이면 바로 반환
    최초 common prefix는 배열의 첫번째 인덱스 요소가 되고
    이후 비교를 통해서 찾아가도록 문제를 풀어갈 예정입니다.
 */
class Solution {
    public String longestCommonPrefix(String[] strs) {
        String commonPrefix = strs[0];

        for(int i = 0; i < strs.length; i++) {
            commonPrefix = findCommonPrefix(commonPrefix, strs[i]);
            if (commonPrefix.equals("")) {
                break;
            }
        }
        return commonPrefix;
    }

    public String findCommonPrefix(String prefix, String str) {
        for(int i = 0; i < str.length() && i < prefix.length(); i++) {
            if (prefix.charAt(i) != str.charAt(i)) {
                return prefix.substring(0, i);
            }
        }
        if (prefix.length() > str.length()) {
            return str;
        }
        return prefix;
    }
}

 

 

String substring

 

- substring(int index) - index부터 마지막 요소까지 반환

- substring(int beginIndex, int endIndex) - beginIndex부터 endIndex까지 반환

'코딩테스트' 카테고리의 다른 글

9. Palindrome Number  (0) 2024.02.16
234. Palindrome Linked List  (0) 2024.02.16
844. Backspace String Compare  (0) 2024.02.12
13. Roman to Integer  (0) 2024.02.08
136. Single Number  (1) 2024.02.07