leetcode - 14. Longest Common Prefix
주제
문자열
문제
- https://leetcode.com/problems/longest-common-prefix/description/
문자열 배열이 주어진다.
문자열 배열에서 접두사가 중복되는 것을 리턴하라
입출력 예시
예시 1
입력: strs = ["flower","flow","flight"]
출력: "fl"
예시 2
입력: strs = ["dog","racecar","car"]
출력: ""
설명: 입력 문자열 사이에 공통된 접두사가 없습니다.
조건
- 1 <= strs.length <= 200
- 0 <= strs[i].length <= 200
- strs[i]비어 있지 않으면 소문자 영어 문자로만 구성됩니다.
문제풀이
- 주어진 문자 배열의 0번째 문자열을 초기화한다.
- 주어진 문자 배열 만큼 반복문을 돈다.
- 현재 문자열의 length와 1번에서 초기화한 문자열의 length 중 가장 작은 것을 선택하여 다시 반복한다.
- 같은 문자가 있다면 endIndex를 +1 하고,
- 같은 문자가 없다면 break하여 3번을 빠져나온다.
- 1번에서 초기화한 문자열의
substring()
을 사용하여 0부터 endIndex까지 덮어쓴다. - 1번에서 초기화한 문자열을 리턴한다.
class Solution {
public String longestCommonPrefix(String[] strs) {
String word = strs[0];
for (int i = 1; i < strs.length; i++) {
int endIndex = 0;
int from = Math.min(strs[i].length(), word.length());
for (int j = 0; j < from; j++) {
char target = strs[i].charAt(j);
if (target == word.charAt(j)) {
endIndex++;
} else {
break;
}
}
word = word.substring(0, endIndex);
}
return word;
}
}
댓글남기기