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

পাইথনে স্ট্রিং লেখার লাইন সংখ্যা (Number of Lines To Write String)


সমস্যা বিবরণ

একটি স্ট্রিং S এবং প্রতিটি অক্ষরের প্রস্থ (widths array) দেওয়া থাকে। প্রতিটি লাইনের সর্বোচ্চ প্রস্থ ১০০ ইউনিট। S-এর অক্ষরগুলো বাম থেকে ডানে লিখতে হবে। যদি কোনো অক্ষর লিখতে লাইনের প্রস্থ ১০০ ছাড়িয়ে যায়, তবে পরবর্তী লাইনে লিখুন। دوটি জিজ্ঞাসার উত্তর দিন: (১) কত লাইন লাগলো, (২) শেষ লাইনের প্রস্থ কত।

উদাহরণ

widths = [4,10,10,...] (a=4, b-z=10), S = "bbbcccdddaaa" → আউটপুট: [2, 4]

ব্যাখ্যা: প্রথম লাইনে "bbbcccdddaa" = 9×10 + 2×4 = ৯৮ ইউনিট। শেষ 'a' (প্রস্থ ৪) দ্বিতীয় লাইনে যায়।

এলগরিদম

  1. line = 1, count = 0 (বর্তমান লাইনের প্রস্থ)।
  2. S-এর প্রতিটি অক্ষর c এর জন্য:
    • count += widths[ord(c) - 97]।
    • যদি count > 100 → line += 1, count = widths[ord(c) - 97] (নতুন লাইনে শুরু)।
  3. [line, count] রিটার্ন করুন।

পাইথন বাস্তবায়ন

class Solution:
    def numberOfLines(self, widths, S):
        line = 1
        count = 0
        for c in S:
            w = widths[ord(c) - 97]
            if count + w > 100:
                line += 1
                count = w
            else:
                count += w
        return [line, count]

ob = Solution()
print(ob.numberOfLines([4]+[10]*25, "bbbcccdddaaa"))  # [2, 4]

ইনপুট / আউটপুট

ইনপুট: widths array, "bbbcccdddaaa"
আউটপুট: [2, 4]
  1. পাইথনে স্ট্রিং নাম্বার প্যালিনড্রোম কিনা চেক করা

  2. পাইথনে স্ট্রিংয়ে একটি শব্দের উপস্থিতি গণনা করার প্রোগ্রাম

  3. পাইথনে টেক্সট ফাইলে একাধিক লাইন লেখার পদ্ধতি

  4. পাইথনে লম্বা লাইন র‍্যাপ করার পদ্ধতি