Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ใช้ strStr() ใน Python


สมมติว่าเรามีสองสตริง str และ sub_str เราต้องหาการเกิดขึ้นครั้งแรกของ sub_str ใน str ดังนั้นหากสตริง str คือ "helloworld" และสตริงย่อยคือ "lo" ผลลัพธ์จะเป็น 3

สามารถทำได้โดยใช้ฟังก์ชัน strstr() ใน C เราต้องออกแบบฟังก์ชันอื่นที่คล้ายกับ strstr() ใน C

ในการแก้ปัญหานี้ ให้ทำตามขั้นตอนเหล่านี้ -

  • i :=0, j :=0, m :=ความยาวของ sub_str และ n :=ความยาวของ str
  • ถ้า m =0 ให้คืนค่า 0
  • ในขณะที่ i
  • ถ้า str[i] =sub_str[j] แล้ว
    • อุณหภูมิ :=เจ
    • ในขณะที่ j
    • เพิ่ม i และ j ขึ้น 1
  • ถ้า j =m ให้คืนค่า temp
  • i :=อุณหภูมิ + 1
  • j :=0
  • อย่างอื่นเพิ่ม i ขึ้น 1
  • คืน -1
  • มาดูการใช้งานกันให้เกิดความเข้าใจกันมากขึ้น

    ตัวอย่าง (Python)

    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