কম্পিউটার টিউটোরিয়াল

পাইথনে Implement strStr() (সাবস্ট্রিং সার্চ)

দুটি স্ট্রিং haystack এবং needle দেওয়া থাকে। haystack-এ needle-র প্রথম অকারেন্সের ইন্ডেক্স বের করতে হবে। না পেলে -১। সি-র strstr()-র মতো।

সমাধানের পদ্ধতি

  1. i=0, j=0, m=len(needle), n=len(haystack)।
  2. যদি m==0, 0 রিটার্ন করুন।
  3. while i < n and n-i+1 >= m:
    • যদি haystack[i] == needle[j], ম্যাচিং শুরুর ইন্ডেক্স সেভ করে পুরো needle ম্যাচ করান।
    • সফল হলে স্টার্ট ইন্ডেক্স রিটার্ন করুন।
    • নहीं হলে i = temp+1, j=0।
  4. -1 রিটার্ন করুন।

উদাহরণ কোড

class Solution(object):
    def strStr(self, haystack, needle):
        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
  1. পাইথনে মিন-শিফট অ্যালগরিদম বাস্তবায়ন

  2. পাইথনে issuperset() ফাংশন

  3. পাইথনে isNumber() ফাংশন বাস্তবায়ন

  4. পাইথনে লগিং (Logging) – সম্পূর্ণ গাইড