ধরুন আমাদের একটি স্ট্রিং S আছে এবং আমাদের সেই প্রদত্ত স্ট্রিংয়ের অক্ষরগুলিকে বাম থেকে ডানে লাইনে লিখতে হবে। এখানে প্রতিটি লাইনের সর্বাধিক প্রস্থ 100 ইউনিট রয়েছে এবং যদি একটি চিঠি লেখার ফলে লাইনের প্রস্থ 100 ইউনিটের বেশি হয়, তাহলে সেটি পরবর্তী লাইনে লেখা হবে। আমাদের একটি অ্যারের প্রস্থও রয়েছে, এখানে প্রস্থ [0] হল 'a'-এর প্রস্থ, প্রস্থ [1] হল 'b'এর প্রস্থ ইত্যাদি৷
আমাদের দুটি প্রশ্নের উত্তর খুঁজতে হবে −
- S থেকে কত লাইনে অন্তত একটি অক্ষর আছে
- এই ধরনের শেষ লাইন দ্বারা ব্যবহৃত প্রস্থ কত?
আমরা উত্তরটি দৈর্ঘ্য 2 এর একটি পূর্ণসংখ্যা তালিকা হিসাবে ফিরিয়ে দেব।
সুতরাং, যদি ইনপুট হয় [4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10] এবং S ="bbccccdddaaa", তারপর আউটপুট হবে [2, 4], কারণ 'a' ব্যতীত সমস্ত অক্ষরের দৈর্ঘ্য একই 10, এবং স্ট্রিং "bbccccdddaa" কভার করবে 9 * 10 + 2 * 4 =98 স্পেস। শেষ 'ক'-এর জন্য, এটি দ্বিতীয় লাইনে লেখা হয়েছে কারণ প্রথম লাইনে মাত্র 2 ইউনিট বাকি আছে। সুতরাং উত্তর হল 2 লাইন, প্লাস 4 ইউনিট দ্বিতীয় লাইনে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- লাইন :=1, গণনা :=0
- এস এর প্রতিটি i এর জন্য, করুন
- গণনা :=গণনা + প্রস্থ [এএসসিআইআই এর i - 97]
- যদি গণনা> 100 হয়, তাহলে
- লাইন :=লাইন + 1
- গণনা :=প্রস্থ[i - 97 এর ASCII]
- রিটার্ন [লাইন, গণনা]
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
শ্রেণির সমাধান:def numberOfLines(self, widths, S):লাইন =1 count =0 i এর জন্য S:count +=widths[ord(str(i))-97] যদি গণনা> 100:লাইন +=1 গণনা =প্রস্থ [ord(str(i))-97] রিটার্ন [লাইন, গণনা] ob =সমাধান()মুদ্রণ(ob.numberOfLines([4,10,10,10,10,10,10,10,10) ,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10], "bbccccdddaaa"))
ইনপুট
<পূর্ব> 10,10,10],"bbccccdddaaa"আউটপুট
[2, 4]