[Leetcode] 28. Implement strStr()

Algorithm|2021. 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;
}

 

 

반응형

댓글()