본문 바로가기
Algorithm/LeetCode

[Java] 14. Longest Common Prefix

by tabasco 2023. 6. 7.

문제 설명 :

- 1차원 배열에 여러개의 문자열이 담겨있는데, 문자열들 간에 동일한 Prefix(접두사)가 있다면 출력하는 문제

 

class Solution {
    public String longestCommonPrefix(String[] strs) {
        //가장 길이가 짧은 녀석을 찾음.
        //그 녀석을 for문 돌리면서 다른 녀석들과 하나씩 비교
        String shortest = strs[0];
        StringBuffer buffer = new StringBuffer("");
        boolean check = true;
        
        for(String s : strs){
            if(shortest.length() > s.length()) shortest = s;
        }

        for(int i=0; i<shortest.length(); i++){
            for(int j=0; j<strs.length; j++){
                if(shortest.charAt(i) == strs[j].charAt(i) && check){
                    check = true;
                }else{
                    check = false;
                    break;
                }
            }

            if(check) buffer.append(shortest.charAt(i)+"");
        }

        return buffer.toString();
    }
}

 

해설 :

- 일단 범위를 초과할 수 있기 때문에, 배열 내 문자열 중 가장 사이즈가 작은 문자열을 찾아주었다.

- 그리고 해당하는 문자열에서 char로 한 글자씩 뽑아내며, 다른 문자열들에 동일한 값이 있는지 확인해준다.

- 모두 동일한 값이 있을 때 StringBuffe에 해당 char를 append하고, 마지막에 버퍼를 출력해주면 된다.

'Algorithm > LeetCode' 카테고리의 다른 글

[Java] 21. Merge Two Sorted Lists  (0) 2023.06.07
[Java] 20. Valid Parentheses  (0) 2023.06.07
[Java] 13. Roman to Integer  (0) 2023.06.07
[Java] 9. Palindrome Number  (0) 2023.06.07
[Java] 1. Two Sum  (0) 2023.06.07