দুটি স্ট্রিং haystack এবং needle দেওয়া থাকে। haystack-এ needle-র প্রথম অকারেন্সের ইন্ডেক্স বের করতে হবে। না পেলে -১। সি-র strstr()-র মতো।
সমাধানের পদ্ধতি
i=0, j=0, m=len(needle), n=len(haystack)।- যদি
m==0,0রিটার্ন করুন। while i < n and n-i+1 >= m:- যদি
haystack[i] == needle[j], ম্যাচিং শুরুর ইন্ডেক্স সেভ করে পুরোneedleম্যাচ করান। - সফল হলে স্টার্ট ইন্ডেক্স রিটার্ন করুন।
- নहीं হলে
i = temp+1,j=0।
- যদি
-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