আমাদেরকে বর্ণমালার একটি স্ট্রিং স্ট্রিং এবং সমস্ত ইংরেজি বর্ণমালার প্রস্থ সহ একটি অ্যারের প্রস্থ দেওয়া হয়েছে। লক্ষ্য হল 10টি অক্ষর বিশিষ্ট একটি পৃষ্ঠায় এই স্ট্রিংটি প্রিন্ট করার জন্য প্রয়োজনীয় লাইনের সংখ্যা খুঁজে বের করা। অবশিষ্ট অক্ষরগুলিও মুদ্রণ করুন৷
৷আমরা বর্তমান অক্ষরের স্ট্রিং চেক প্রস্থ অতিক্রম করব এবং যোগ করব, যদি এই যোগফল>=10 লাইনের সংখ্যা বৃদ্ধি হয়।
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট
Str = "ababababab" widths[] = {2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 1, 1, 1};
আউটপুট
Count of lines: 2 Remaining width: 6
ব্যাখ্যা
line 1 : ababab ( 2+1+2+1+2+1 = 3+3+3=9) line 2 : abab (2+1+2+1)
ইনপুট
Str = "bbbbbbbbbbdd" widths[] = {2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 1, 1, 1};
আউটপুট
Count of lines: 2 Remaining width: 2
ব্যাখ্যা
line 1 : bbbbbbbbbb (1+1+1+1+1+1+1+1+1+1=10) line 2 : dd (1+1)
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমাদের প্রতিটি বর্ণমালার একটি স্ট্রিং Str এবং অ্যারের প্রস্থ[] স্থান রয়েছে।
-
ফাংশন numberOfLines(string str,int len, int w[]) পৃষ্ঠায় লাইনের সংখ্যা এবং শেষ লাইনে অক্ষরের প্রস্থ প্রদর্শন করে।
-
numoflines=0 হিসাবে লাইনের প্রাথমিক গণনা নিন।
-
বাকি=0
হিসাবে প্রাথমিক শেষ লাইনের প্রস্থ নিন -
লুপের জন্য ব্যবহার করে ট্রাভার্স স্ট্রিং স্ট্রিং।
-
বর্তমান অক্ষর c কে str[i] হিসাবে নিন।
-
c এর প্রস্থকে num=width[c-’a’] হিসাবে চেক করুন।
-
থাকার জন্য এই সংখ্যা যোগ করুন।
-
যদি থাকে>=10 ইনক্রিমেন্ট লাইন কাউন্ট এবং আপডেট সংখ্যা হিসাবে থাকে।
-
লুপের শেষে ফলাফল প্রিন্ট করুন।
উদাহরণ
#include <bits/stdc++.h> using namespace std; // Function to return the number of lines required void numberOfLines(string str,int len, int w[]){ int numoflines = 0; int remain = 0; //traversing string for (int i=0;i<len;i++){ char c=str[i]; //current character int num = w[c - 'a']; //units for current character remain += num; if (remain >= 10){ numoflines+=1; remain = num; } } cout<<"Count of lines: "<<numoflines; cout<<endl<<"Remaining width: "<<remain; } int main(){ string Str = "abcdefghijklmnop"; int length=Str.length(); int widths[] = {2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 2, 1, 1, 1}; numberOfLines(Str,length,widths); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of lines: 3 Remaining width: 1