코린이의 소소한 공부노트

[LeetCode/Easy] 28. Implement strStr() 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 28. Implement strStr()

무지맘 2022. 8. 12. 00:25

1. Input

1) String 변수 needle

2) String 변수 haystack

 

2. Output

1) haystack에서 needle이 처음으로 나오는 인덱스

2) needle이 haystack의 부분 문자열이 아니라면 -1

3) needle이 빈 문자열("")이라면 0

 

3. Constraint

1) 1 <= haystack.length, needle.length <= 104

2) haystack과 needle은 영어 소문자로만 구성되어 있음

 

4. Example

Input: haystack = "hello", needle = "ll"
Output: 2

 

5. Code

1) 첫 코드(2022/07/15)

int n = needle.length();
int h = haystack.length();
if(h < n)
    return -1;    
if(h == n){
    if(haystack.equals(needle))
        return 0;
    else
        return -1;
    }
int output = -1;
for(int i=0 ; i<h ; i++){
    if(haystack.charAt(i)==needle.charAt(0)){
        if(i+n<=h && haystack.substring(i,i+n).equals(needle)){
            output = i;
            break;
        }                    
    }
}
return output;

  - needle의 길이가 더 길다면 haystack의 부분이 될수 없으므로 -1 반환

  - 길이가 같을 때 내용이 같다면 0 반환, 다르다면 -1 반환

  - haystack의 문자 하나씩 보면서 needle이 있는 부분을 찾으면 인덱스 반환