[Leetcode] 28. Implement strStr()
Algorithm2021. 7. 25. 19:55
반응형
Identifying the Problem
haystack 문자열 안에 needle이 있으면 곂치는 부분의 첫 index를 return
곂치는 부분이 없다면 -1 return
Organizing thoughts
1. haystack 길이보다 needle이 긴 경우, haystack이 ""인 경우는 -1을 return 한다.
2. needle이 ""인 경우 0을 return 한다.
3. haystack 과 needle이 같은지 검사한다.
3-1 haystack과 needle의 첫 글자가 같은 경우
3-2 해당 부분부터 needle과 같은지 검사한다.
3-3 같은 부분의 수와 needle의 길이가 같다면
3-4 해당 index를 return 한다.
Sourcecode
int strStr(char * haystack, char * needle){
int h_len = strlen(haystack);
int n_len = strlen(needle);
int index = -1;
int count = 0;
if(n_len > 0 && h_len==0) return index; //1
else if(n_len>h_len) return index; //1
else if(n_len == 0 && h_len>=0) return 0; //2
for(int i=0; i<h_len-n_len+1; i++) //3
{
if(haystack[i] == needle[0]) //3-1
{
for(int k=0 ; k<n_len;k++) //3-2
{
if(haystack[i+k] == needle[k])
count++;
}
}
if(count == n_len) //3-3
{
index = i;
break;
}
count = 0;
}
return index;
}
반응형
'Algorithm' 카테고리의 다른 글
[Leetcode] 53. Maximum Subarray (0) | 2021.07.25 |
---|---|
[Leetcode] 35. Search Insert Position (0) | 2021.07.25 |
[Leetcode] 27. Remove Element (0) | 2021.07.25 |
[Leetcode] 26. Remove Duplicates from Sorted Array (0) | 2021.07.25 |
[Leetcode] 21. Merge Two Sorted Lists (0) | 2021.07.24 |
댓글()