ধরুন আমাদের দুটি স্ট্রিং আছে, 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