TIL
[코테연습] 1455. Check If a Word Occurs As a Prefix of Any Word in a Sentence
크라00
2024. 12. 2. 22:15
문제타입
- 문자열 처리: 문자열에서 특정 단어가 접두사(prefix)로 포함되어 있는지 확인하는 문제.
- 탐색 문제: 주어진 문장에서 단어를 순차적으로 탐색하며 조건을 만족하는지 검사.
문제분석
- 입력:
- sentence: 공백으로 구분된 단어들의 문자열.
- searchWord: 찾고자 하는 접두사 단어.
- 출력:
- searchWord가 접두사로 포함된 단어의 위치(1부터 시작).
- 접두사로 포함된 단어가 없으면 -1 반환.
- 제약조건:
- sentence는 공백으로 구분된 최소 1개 이상의 단어로 구성.
- searchWord는 1개 이상의 알파벳 소문자로 구성.
- 핵심문제:
- sentence를 단어 단위로 분리한 후 각 단어의 접두사 여부를 확인.
- 첫 번째로 접두사 조건을 만족하는 단어의 위치를 반환해야 함.
문제풀이
- 문자열 분리:
- split(" ")을 사용하여 공백으로 단어를 나눔.
- 반복문을 통한 탐색:
- for문을 사용하여 각 단어를 확인.
- startsWith(searchWord)를 사용해 접두사 여부를 검사.
- 조건 충족 시 즉시 반환:
- 접두사 조건을 만족하면 i + 1 (1-based index) 반환.
- 조건 미충족 시 반환:
- 모든 단어를 탐색했음에도 조건을 만족하지 않으면 -1 반환.
- 시간 복잡도:
- 단어의 개수가 n이고 각 단어의 길이가 최대 m일 때, 최악의 경우 O(n * m).
> java
class Solution {
public int isPrefixOfWord(String sentence, String searchWord) {
String[] arr = sentence.split(" ");
int n = arr.length;
for (int i = 0; i < n; i++) {
if (arr[i].startsWith(searchWord)) {
return i+1;
}
}
return -1;
}
}