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

C++ में पहले और अंतिम तत्व समान वाले सब-ऐरे की अधिकतम लंबाई


इस समस्या में, हमें वर्णों का एक ऐरे दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो C++ में पहले और अंतिम तत्व समान वाले सबऐरे की अधिकतम लंबाई प्रिंट करे।

आइए एक उदाहरण से इस समस्या को समझते हैं,

इनपुट - array = {'t', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'p', 'o', 'i', 'n', 't'}

आउटपुट - 14

व्याख्या -

सबऐरे {'t', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'p', 'o', 'i', 'n', 't'} t से शुरू होता है और t पर समाप्त होता है।

इस समस्या को हल करने के लिए, हम ऐरे में एक वर्ण की पहली और अंतिम घटना ढूंढते हैं और फिर सूत्र का उपयोग करके -

सबऐरे लंबाई = अंतिमघटना - पहलीघटना + 1

हम सभी परिणामों की अधिकतम लंबाई ढूंढेंगे।

आइए समाधान समझने के लिए एक उदाहरण हल करें,

Array = {a, b, a, c, b, a}

तत्व a, पहली घटना इंडेक्स 0 पर, अंतिम घटना इंडेक्स 5 पर

सबऐरे लंबाई = 5 - 0 + 1 = 6

maxLength = 6

तत्व b, पहली घटना इंडेक्स 1 पर, अंतिम घटना इंडेक्स 4 पर

सबऐरे लंबाई = 4 - 1 + 1 = 4

maxLength = 6

उदाहरण

पहले और अंतिम तत्व समान वाले सबऐरे की अधिकतम लंबाई प्रिंट करने का प्रोग्राम -

#include <iostream> 
using namespace std; 

int maxSubArrLength(string arr, int n) {
    int firstOccurrence, lastOccurrence = -1;
    int maxlength = 0;
    char ch;
    
    for (int i = 0; i < n; i++) {
        ch = arr[i];
        firstOccurrence = lastOccurrence = i;
        
        for (int j = i; j < n; j++) {
            if (arr[j] == ch)
                lastOccurrence = j;
        }
        
        maxlength = max(maxlength, (lastOccurrence - firstOccurrence + 1));
    }
    
    return maxlength;
}

int main() {
    string arr = "tutorialsPoint";
    int n = arr.length();
    cout << "The maximum length of subarray whose first and last elements are same is " << maxSubArrLength(arr, n);
    return 0;
}

आउटपुट

The maximum length of subarray whose first and last elements are same is 14

  1. - C++ में जांचना कि कोई संख्या दिए गए पहले तत्व और अंतर वाली AP का हिस्सा है या नहीं

    मान लीजिए हमारे पास AP का पहला तत्व और अंतर (difference) है। हमें जांचना है कि दी गई संख्या n AP का हिस्सा है या नहीं। यदि पहला पद a=1 है, अंतर d=3, और पद x=7 की जांच करनी है। उत्तर हां है। इस समस्या को हल करने के लिए, हम इन चरणों का पालन करेंगे: यदि d=0 है, और a=x, तो true लौटाएं, अन्यथा fals

  1. - C++ में रेंज [A, B] में C से विभाज्य अधिकतम धनात्मक पूर्णांक

    यहां हम एक दिलचस्प समस्या देखेंगे। मान लीजिए हमारे पास तीन पूर्णांक A, B, और C हैं। हमें एक न्यूनतम पूर्णांक X ढूंढना है, जैसे कि X mod C = 0, और X रेंज [A, B] में नहीं है। यदि A, B और C के मान 5, 10 और 4 हैं, तो X का मान 4 होगा। समाधान प्राप्त करने के चरण: चरण − यदि C रेंज [A, B] में नहीं है

  1. - C++ में जांचें कि स्ट्रिंग के पहले और अंतिम कैरेक्टर समान हैं या नहीं

    स्ट्रिंग का एक इनपुट दिया गया है और कार्य यह जांचना है कि दी गई स्ट्रिंग के पहले और अंतिम कैरेक्टर समान हैं या नहीं। उदाहरण इनपुट-: study आउटपुट-: समान नहीं    क्योंकि शुरुआती कैरेक्टर s है और स्ट्रिंग का अंतिम कैरेक्टर y है इनपुट-: nitin आउटपुट-: हां, इसके पहले और अंतिम कैरेक्टर समान हैं