দুটি স্ট্রিং A এবং B দেওয়া থাকে। A-কে রোটেট করে কি B পাওয়া যায় তা যাচাই করতে হবে। উদাহরণস্বরূপ, A = 'abcde' এবং B = 'bcdea' হলে উত্তর True, কারণ A-কে রোটেট করলে B পাওয়া যায়।
সমাধানের পদ্ধতি
- যদি উভয় স্ট্রিং খালি হয়, তবে
Trueরিটার্ন করুন। যদি দৈর্ঘ্য ভিন্ন হয়, তবেFalseরিটার্ন করুন। A-কে নিজের সাথে জোড়া দিন (A = A * 2)।- টু-পয়েন্টার টেকনিক ব্যবহার করে
A-র মধ্যেBখুঁজুন।
উদাহরণ কোড
class Solution(object):
def rotateString(self, A, B):
if not A and not B:
return True
if len(A) != len(B):
return False
A = A * 2
i = 0
j = 0
while i < len(A):
if len(A) - i + 1 < len(B):
return False
while i < len(A) and j < len(B) and A[i] == B[j]:
i += 1
j += 1
if j == len(B):
return True
if j:
i -= 1
j = 0
i += 1
ob1 = Solution()
print(ob1.rotateString("abcde", "cdeab"))
ইনপুট
"abcde" "cdeab"
আউটপুট
True