কম্পিউটার

পাইথনে ডাবল, রিভার্স এবং অদলবদলের পর প্যাটার্ন


ধরুন আমাদের একটি সংখ্যা n আছে, আমরা ক্রম থেকে nম মান খুঁজে বের করতে পেরেছি। ক্রমটি নিচের মত -

  • xxy
  • xxyxxy
  • yxxyxx
  • xyyxyy
  • xyyxyyxyyxyy
  • ...

পরবর্তী মান তৈরি করতে, আমাদের এই নিয়মগুলি অনুসরণ করতে হবে, প্রথম পদ হিসাবে xxy দিয়ে শুরু −

  • যখন আমরা প্যাটার্নের শুরুতে থাকি, তখন এটি দ্বিগুণ করুন (স্ট্রিংটিকে নিজের সাথে সংযুক্ত করুন)।

  • যখন শেষ অপারেশনটি দ্বিগুণ হচ্ছিল, তখন এটিকে বিপরীত করুন৷

  • যখন শেষ অপারেশনটি উল্টে যাচ্ছিল, সমস্ত xs কে ys এর সাথে এবং এর বিপরীতে পরিবর্তন করুন।

  • এই পদক্ষেপগুলি পুনরাবৃত্তি করুন৷

সুতরাং, যদি ইনপুট n =5 এর মত হয়, তাহলে আউটপুট হবে "yyxyyxyyxyyx"

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

  • i :=0
  • ret :="xxy"
  • যখন i
  • যদি i mod 3 0 এর মত হয়, তাহলে
    • ret :=ret + ret
  • অন্যথায় যখন i mod 3 1 এর মত হয়, তখন
    • ret :=সূচক 0 থেকে শেষ-1 পর্যন্ত ret-এর সাবঅ্যারে
  • অন্যথায়,
    • new_stringy :=ফাঁকা স্ট্রিং
    • ret-এ প্রতিটি c-এর জন্য
    • করুন
      • যদি c "x" এর মত হয়, তাহলে
        • new_stringy :=new_stringy concatenate "y"
      • অন্যথায়,
        • new_stringy :=new_stringy concatenate "x"
    • ret :=new_stringy
  • i :=i + 1
  • রিটার্ন রিটার্ন
  • আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    উদাহরণ

    class Solution:
       def solve(self, s):
          i = 0
          ret = "xxy"
          while i < s:
             if i % 3 == 0:
                ret += ret
             elif i % 3 == 1:
                ret = ret[::-1]
             else:
                new_stringy = ""
                for c in ret:
                   if c == "x":
                      new_stringy += "y"
                   else:
                      new_stringy += "x"
                   ret = new_stringy
                i += 1
          return ret
    ob = Solution()
    print(ob.solve(5))

    ইনপুট

    5

    আউটপুট

    yyxyyxyyxyyx

    1. পাইথনে প্যাটার্ন কিভাবে প্রিন্ট করবেন?

    2. পাইথনে বৈধ অ্যানাগ্রাম

    3. পাইথনে বিপরীত পূর্ণসংখ্যা

    4. পাইথনে প্যারামিটারের জন্য ** (ডাবল স্টার) এবং * (স্টার) কী করে?