একটি স্ট্রিং এবং প্রতিটি অক্ষরের প্রস্থ (width) দেওয়া থাকলে, ১০ ইউনিট প্রস্থের লাইনে স্ট্রিংটি লিখতে কত লাইন লাগবে এবং শেষ লাইনে কত প্রস্থ থাকবে তা বের করতে হবে।
উদাহরণ
স্ট্রিং: "ababababab"
প্রস্থ: a=2, b=1, c=3, বাকি=1
লাইন ১: ababab (২+১+২+১+২+১=৯)
লাইন ২: abab (২+১+২+১=৬)
আউটপুট: লাইন=2, অবশিষ্ট প্রস্থ=6
অ্যালগরিদম
lines = 0,currentWidth = 0ইনিশিয়ালাইজ করুন।- প্রতিটি ক্যারেক্টারের জন্য:
- প্রস্থ যোগ করুন।
- যদি
currentWidth >= 10হয়, তবেlines++এবংcurrentWidth = currentCharWidth।
- ফলাফল প্রিন্ট করুন।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void numberOfLines(string str, int widths[]) {
int lines = 0;
int remain = 0;
for (char c : str) {
int w = widths[c - 'a'];
remain += w;
if (remain >= 10) {
lines++;
remain = w;
}
}
cout << "Lines: " << lines << endl;
cout << "Remaining width: " << remain;
}
int main() {
string str = "abcdefghijklmnop";
int widths[] = {2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,2,1,1,1,1};
numberOfLines(str, widths);
return 0;
}
ইনপুট
"abcdefghijklmnop", widths[26]
আউটপুট
Lines: 3 Remaining width: 1