Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 strStr() 구현


두 개의 문자열 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
  • i 1 증가
  • 반환 -1
  • 더 나은 이해를 위해 구현을 살펴보겠습니다.

    예제(파이썬)

    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