ধরুন আমাদের দুটি স্ট্রিং আছে, A এবং B। আমরা A স্ট্রিংটি ঘোরাব এবং এটি ঘূর্ণনের যেকোনো অবস্থানে B এর সাথে মেলে কিনা তা পরীক্ষা করব, যদি তাই হয় তবে সত্য, অন্যথায় মিথ্যা দিন। উদাহরণস্বরূপ, যদি A ='abcde', এবং B ='bcdea' তাহলে উত্তরটি সত্য হবে, কারণ A কে ঘোরানোর পর B তে রূপান্তর করা যেতে পারে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যখন A এবং B উভয়ই খালি থাকে, তখন সত্য ফেরত দিন, যখন দুটিই ভিন্ন দৈর্ঘ্যের হয় তখন মিথ্যা ফেরত দিন
- A :=A এর পরে A সংযুক্ত করুন
- i :=0, এবং j :=0
- যখন আমি এর দৈর্ঘ্য
- যদি A – i + 1
- যখন i
- i এবং j 1 দ্বারা বাড়ান
- যদি A – i + 1
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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
#print(A,B)
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]:
#print("Here!",i,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