두 개의 문자열 str과 sub_str이 있다고 가정합니다. str에서 sub_str의 첫 번째 발생을 찾아야 합니다. 따라서 문자열 str이 "helloworld"이고 하위 문자열이 "lo"이면 결과는 3이 됩니다.
이것은 C의 strstr() 함수를 사용하여 수행할 수 있습니다. 우리는 C의 strstr()과 유사한 다른 함수를 설계해야 합니다.
이 문제를 해결하려면 다음 단계를 따르십시오 -
- i :=0, j :=0, m :=sub_str의 길이 및 n :=str의 길이
- m =0이면 0을 반환
- i
- str[i] =sub_str[j]이면
- temp :=j
- j
- i와 j를 1씩 증가
- j =m이면 temp를 반환합니다.
- i :=온도 + 1
- j :=0
- str[i] =sub_str[j]이면
더 나은 이해를 위해 구현을 살펴보겠습니다.
예제(파이썬)
class Solution(object): def strStr(self, haystack, needle): """ :type haystack: str :type needle: str :rtype: int """ i = 0 j = 0 m = len(needle) n = len(haystack) if m ==0: return 0 while i<n and n-i+1>=m: if haystack[i] == needle[j]: temp = i while j<m and i<n and needle[j]==haystack[i]: i+=1 j+=1 if j == m: return temp i= temp+1 j = 0 else: i+=1 return -1 haystack = "helloworld" needle = "lo" ob1 = Solution() print(ob1.strStr(haystack, needle))
입력
haystack = "helloworld" needle = "lo"
출력
3