उन वर्णों के साथ एक स्ट्रिंग उत्पन्न करें जिनके पास विषम संख्या में लेटकोड समाधान है


कठिनाई स्तर आसान
में अक्सर पूछा दीदी
तार

समस्या का विवरण

इस समस्या में, हमें एक लंबाई दी जाती है। हमें एक उत्पन्न करना है स्ट्रिंग इसमें सभी वर्ण विषम संख्या में होते हैं। उदाहरण के लिए, आआआआब एक वैध स्ट्रिंग है क्योंकि गिनती (ए) = 5 और गिनती (बी) = 1।
लेकिन, यहां आब्ब्क एक वैध स्ट्रिंग नहीं है क्योंकि गिनती (बी) = 2 जो एक सम संख्या है।

उदाहरण

n = 4
"pppz"

स्पष्टीकरण:

"Pppz" एक वैध स्ट्रिंग है क्योंकि चरित्र 'p' तीन बार होता है और वर्ण 'z' एक बार होता है। ध्यान दें कि "ओह्ह" और "प्रेम" जैसे कई अन्य मान्य तार हैं।

n = 2
"xy"

स्पष्टीकरण:

"Xy" एक वैध स्ट्रिंग है क्योंकि वर्ण 'x' और 'y' एक बार होते हैं। ध्यान दें कि "अग" और "उर" जैसे कई अन्य मान्य तार हैं।

दृष्टिकोण

हम यहां एक ट्रिक का उपयोग कर सकते हैं।
यदि स्ट्रिंग की लंबाई विषम संख्या है तो हम इसे बनाने के लिए एक एकल वर्ण का उपयोग कर सकते हैं स्ट्रिंग, और यदि इनपुट की लंबाई सम संख्या है तो हम एक स्ट्रिंग बना सकते हैं जिसमें केवल दो अक्षर हों।
एक वर्ण n-1 बार (जो एक विषम संख्या होगी क्योंकि n यहाँ भी है) और एक ही बार anoter वर्ण होगा (जो एक विषम संख्या है)।

उदाहरण के लिए n = 4, हमारा आउटपुट आब होगा
और अगर n = 3, हमारा आउटपुट आआ होगा

उन वर्णों के साथ एक स्ट्रिंग उत्पन्न करें जिनके पास विषम संख्या में लेटकोड समाधान है
हम अपने समाधान में अक्षर a और b का उपयोग कर रहे हैं, यदि आप चाहें तो पात्रों के और भी विकल्प हैं।

कार्यान्वयन

C ++ प्रोग्राम जनरेट करने के लिए स्ट्रिंग के साथ एक अजीब बात है जो लेटकोड सॉल्यूशन की गणना करता है

#include <bits/stdc++.h>
using namespace std;

string generateTheString(int n) 
{
    string str;
    if(n%2==0)
    {
        for(int i=0;i<n-1;i++)  str.push_back('a');
        str.push_back('b');
    }
    else
    {
        for(int i=0;i<n;i++)  str.push_back('a');
    }
    return str;
}

int main() 
{
    int n=5;
    cout<<  generateTheString(n)   << endl;
    return 0; 
}
aaaaa

जावा प्रोग्राम वर्णों के साथ एक स्ट्रिंग उत्पन्न करने के लिए जो अजीब है लेटकोड सॉल्यूशन गिना जाता है

class Rextester 
{
    public static String generateTheString(int n) 
    {
        StringBuilder sb=new StringBuilder();

        if(n%2==0)
        {
            for(int i=0;i<n-1;i++)sb.append('a');
            sb.append('b');
        }
        else
        {
            for(int i=0;i<n;i++)sb.append('a');
        }

        return sb.toString();
    }

    public static void main(String[]args)
    {
        int length=5;
        System.out.println(generateTheString(length));
    }
}
aaaaa

विषमता उत्पन्न करने वाले चरित्रों के लिए जटिलता विश्लेषण जो अजीबोगरीब मायने रखता है Leetcode Solution

समय जटिलता

पर): हम केवल एक बार दी गई लंबाई के लिए रैखिक रूप से पुनरावृत्ति कर रहे हैं। इसलिए, समय की समीपता O (n) होगी।

अंतरिक्ष जटिलता 

पर): हम अपना आउटपुट स्ट्रिंग बना रहे हैं, इसलिए हम दी गई लंबाई के अतिरिक्त स्थान का उपयोग कर रहे हैं। इसलिए, अंतरिक्ष जटिलता भी O (n) है।