ধরুন আমাদের দুটি স্ট্রিং p এবং q আছে, এবং একটি সংখ্যা r আছে, আমাদের পরীক্ষা করতে হবে যে কিছু অক্ষর ঘড়ির কাঁটার দিকে নাড়াচাড়া করে p কে q তে রূপান্তর করা যায় কিনা। সুতরাং, উদাহরণ হিসাবে, 2টি ঘড়ির কাঁটার দিকে শিফট ব্যবহার করে "c" কে "e" তে পরিণত করা যেতে পারে।
সুতরাং, যদি ইনপুটটি p ="abc", q ="ccc", r =3 এর মত হয়, তাহলে আউটপুট হবে True, কারণ আমরা 2টি ঘড়ির কাঁটার দিকে শিফট ব্যবহার করে "a" কে "c" তে পরিণত করতে পারি এবং তারপরে রূপান্তর করতে পারি " মোট 3টি শিফটের জন্য 1 ঘড়ির কাঁটার শিফট ব্যবহার করে b" "c" তে পরিণত করুন।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি a এর আকার b এর আকারের সমান না হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি k 0 এর মত হয় এবং a b এর মত না হয়, তাহলে
- মিথ্যে ফেরত দিন
- su:=0
- এর জন্য i রেঞ্জ 0 থেকে a এর আকার, করুন
- v :=b[i] এর ASCII - a[i] এর ASCII
- যদি v>=0, তাহলে
- su :=su + v
- অন্যথায়,
- su :=su + v + 26
- যদি su> k, তাহলে
- মিথ্যে ফেরত দিন
- সত্য ফেরান
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, a, b, k): if len(a) != len(b): return False if k == 0 and a != b: return False su=0 for i in range(len(a)): v = ord(b[i])- ord(a[i]) if v>=0: su+=v else: su+=v+26 if su>k: return False return True ob = Solution() print(ob.solve("abc", "ccc", 3))
ইনপুট
"abc", "ccc", 3
আউটপুট
True