हमें एक स्ट्रिंग Str और एक सरणी widths[] दी गई है जिसमें सभी अंग्रेजी अक्षरों की चौड़ाई है। लक्ष्य है इस स्ट्रिंग को प्रिंट करने के लिए आवश्यक लाइनों की संख्या ज्ञात करना, जहां प्रत्येक पृष्ठ की चौड़ाई 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}
आउटपुट - लाइनों की संख्या: 2, शेष चौड़ाई: 6
उपयोग किया गया दृष्टिकोण
- स्ट्रिंग और चौड़ाई सरणी लें।
numoflines = 0, remain = 0इनिशियलाइज़ करें।- स्ट्रिंग के प्रत्येक कैरेक्टर c के लिए:
num = widths[c - 'a']remain += num- यदि
remain >= 10:numoflines++,remain = num
- अंत में लाइन्स और शेष चौड़ाई प्रिंट करें।
उदाहरण (C++ कोड)
#include <bits/stdc++.h>
using namespace std;
void numberOfLines(string str, int len, int w[]) {
int numoflines = 0;
int remain = 0;
for (int i = 0; i < len; i++) {
char c = str[i];
int num = w[c - 'a'];
remain += num;
if (remain >= 10) {
numoflines += 1;
remain = num;
}
}
cout << "Count of lines: " << numoflines << endl;
cout << "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