কম্পিউটার

Python ব্যবহার করে আমরা K চালে স্ট্রিংকে রূপান্তর করতে পারি কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের দুটি স্ট্রিং s এবং t আছে, আমাদের পরীক্ষা করতে হবে s কে k চালে t তে রূপান্তর করা যায় নাকি কম। ith মুভ আপনি এই অপারেশন করতে পারেন.

  • s-তে যেকোন সূচী j (1 থেকে শুরু) নির্বাচন করুন, যেমন 1 <=j <=s এবং j-এর আকার পূর্ববর্তী কোনো পদক্ষেপে নির্বাচন করা হয়নি, এবং সেই সূচক i সংখ্যায় অক্ষরটি বার বার স্থানান্তর করুন।

  • যেমন আছে তেমনই থাকুন।

এখানে একটি অক্ষর স্থানান্তরিত করার অর্থ হল বর্ণমালার পরবর্তী অক্ষর দ্বারা এটি প্রতিস্থাপন করা (যদি অক্ষর 'z' হয় তবে এটিকে 'a' তে মোড়ানো)। সুতরাং i বার দ্বারা একটি অক্ষর স্থানান্তর করা ইঙ্গিত করে যে শিফট অপারেশনগুলি i বার প্রয়োগ করা হচ্ছে৷

সুতরাং, যদি ইনপুটটি s ="poput" t ="vwput" k =9 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ i =6 এ, আমরা 'p' কে 'v' এ রূপান্তর করতে পারি এবং i =8 এ, আমরা 'o' কে 'w' এ রূপান্তর করতে পারি।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:

  • যদি s-এর আকার t-এর আকারের সমান না হয়, তাহলে

    • রিটার্ন ফলস

  • গণনা :=একটি অ্যারে হোল্ডিং (সর্বনিম্ন 1 এবং (k - i + 1 +(k - i)/26)) 0 থেকে 25 পর্যন্ত সকল i জন্য

  • প্রতিটি অক্ষরের জন্য s থেকে c1 এবং t থেকে c2, করুন

    • যদি c1 c2 এর মত না হয়, তাহলে

      • পার্থক্য :=(c2 এর ASCII - c1 + 26 এর ASCII) মোড 26

      • যদি গণনা [ পার্থক্য] <=0, তারপর

        • রিটার্ন ফলস

      • গণনা [ পার্থক্য] :=গণনা [ পার্থক্য] - 1

  • রিটার্ন ট্রু

আরও ভালোভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি

উদাহরণ

def solve(s, t, k):
   if len(s) != len(t):
      return False
   count = [min(1, k - i + 1) + (k - i)//26 for i in range(26)]
   for c1, c2 in zip(s, t):
      if (c1 != c2):
         diff = (ord(c2) - ord(c1) + 26) % 26
         if count[diff] <= 0:
            return False
         count[diff] -= 1
   return True
s = "poput"
t = "vwput"
k = 9
print(solve(s, t,k))

ইনপুট

"poput","vwput",9

আউটপুট

True

  1. একটি প্রদত্ত স্ট্রিং কীওয়ার্ড কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  2. একটি বাক্য পরীক্ষা করার জন্য পাইথন প্রোগ্রাম প্যানগ্রামস কিনা।

  3. পাইথন প্রোগ্রাম একটি তালিকা খালি কি না পরীক্ষা করতে?

  4. একটি স্ট্রিং প্যালিনড্রোম কিনা তা পাইথন ব্যবহার করছে কিনা তা কীভাবে পরীক্ষা করবেন?