কম্পিউটার টিউটোরিয়াল

পাইথনে লুক অ্যান্ড সে সিকোয়েন্স থেকে n-তম টার্ম বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে একটি সংখ্যা n আছে। আমাদের কাজ হল n-তম টার্ম "Look and Say" সিকোয়েন্সে বের করা। এই সিকোয়েন্সের প্রথম কয়েকটি টার্ম নিচের মতো:

  • 1
  • 11
  • 21
  • 1211
  • 111221

স্ট্রিংটি নিচের পদ্ধতিতে পড়া হয়:

  • 1 (One)
  • 11 (One 1) — আগের ১ কে পড়ে "One 1" বলা হয়
  • 21 (Two 1) — আগের ১১ কে পড়ে "Two 1" বলা হয়
  • 1211 (One 2 one 1) — আগের ২১ কে পড়ে "One 2 one 1" বলা হয়
  • 111221 (One 1 one 2 two 1) — আগের 1211 কে পড়ে "One 1 one 2 two 1" বলা হয়

মান লক্ষ্য করুন 1 <= n <= 30। আমাদের কাজ হল n-তম টার্ম জেনারেট করা।

সমাধানের পদ্ধতি:
  • s := "1" সেট করুন।
  • যদি n == 1 হয়, তবে s রিটার্ন করুন।
  • i := 2 থেকে n+1 পর্যন্ত লুপ চালান:
    • j := 0
    • temp := "" (খালি স্ট্রিং)
    • curr := "" এবং count := 0
    • j < len(s) হলে লুপ চালান:
      • যদি curr == "" হয়, তবে curr := s[j], count := 1 এবং j += 1
      • অন্যথায় যদি curr == s[j] হয়, তবে count += 1 এবং j += 1
      • অন্যথায়:
        • temp := temp + str(count) + curr
        • curr := ""
        • count := 0
    • temp := temp + str(count) + curr
    • s := temp
  • s রিটার্ন করুন।
উদাহরণ কোড
class Solution(object):
    def solve(self, n):
        s = "1"
        if n == 1:
            return s
        for i in range(2, n+1):
            j = 0
            temp = ""
            curr = ""
            count = 0
            while j < len(s):
                if curr == "":
                    curr = s[j]
                    count = 1
                    j += 1
                elif curr == s[j]:
                    count += 1
                    j += 1
                else:
                    temp += str(count) + curr
                    curr = ""
                    count = 0
            temp += str(count) + curr
            s = temp
        return s

ob = Solution()
n = 5
print(ob.solve(n))
ইনপুট
5
আউটপুট
"111221"
  1. পাইথনে বাইনারি ট্রিতে নোড এবং এর ডিসেন্ডেন্টের মধ্যে সর্বোচ্চ পার্থক্য বের করার প্রোগ্রাম

  2. পাইথনে x, y, z অক্ষরের নির্দিষ্ট সংখ্যা সম্বলিত সাবসিকোয়েন্স গণনা

  3. পাইথনে অক্রমাগত অ্যারেতে সর্বোচ্চ ক্রমাগত সিকোয়েন্সের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে প্যাসকেলের ট্রায়্যাঙ্গেলের nth সারি খুঁজে বের করার প্রোগ্রাম