Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में दी गई स्ट्रिंग लिखने के लिए आवश्यक लाइनों की गिनती


हमें एक स्ट्रिंग 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

  1. - C++ में वर्णमाला क्रम में सबस्ट्रिंग की गिनती ढूंढें

    मान लीजिए हमारे पास लंबाई n की एक स्ट्रिंग है। इसमें केवल अपरकेस अक्षर हैं। हमें उन सबस्ट्रिंग की संख्या ढूंढनी है जिनके अक्षर वर्णमाला क्रम में आ रहे हैं। सबस्ट्रिंग का न्यूनतम आकार 2 होगा। तो यदि स्ट्रिंग है: REFJHLMNBV, और सबस्ट्रिंग काउंट 2 है, वे EF और MN हैं। इसे हल करने के लिए, हम इन चरणों

  1. - C++ प्रोग्राम: दी गई स्ट्रिंग में "1(0+)1" के सभी पैटर्न ज्ञात करना

    मान लें किसी स्ट्रिंग में 1(0+)1 जैसे पैटर्न हैं। जहां (0+) 1 की गैर-खाली लगातार घटनाओं को इंगित करता है। हमें सभी पैटर्न ज्ञात करने हैं। पैटर्न ओवरलैप हो सकते हैं। स्ट्रिंग आवश्यक रूप से बाइनरी स्ट्रिंग नहीं है। यह केवल अंक और लोअरकेस वर्ण रख सकती है। मान लें स्ट्रिंग 1101001 की तरह है, तो ऐसे दो प

  1. - C++ प्रोग्राम: दी गई स्ट्रिंग के क्रमचय (Permutations) की संख्या ज्ञात करना

    हम एक स्ट्रिंग के कैरेक्टर्स को अलग-अलग क्रम में व्यवस्थित कर सकते हैं। यहां हम देखेंगे कि दी गई स्ट्रिंग से कितने क्रमचय बनाए जा सकते हैं। हम जानते हैं कि यदि एक स्ट्रिंग abc है। इसमें तीन कैरेक्टर्स हैं; हम उन्हें 3! = 6 अलग-अलग तरीकों से व्यवस्थित कर सकते हैं। इसलिए n कैरेक्टर्स वाली स्ट्रिंग क