चरित्रहरूको साथ स्ट्रिंग उत्पन्न गर्नुहोस् जुन विचित्र गणनामा लेटकोड समाधान छ


कठिनाई तह सजिलो
बारम्बार सोधिन्छ डिडी
घागो

समस्या वक्तव्य

यस समस्यामा हामीलाई लम्बाइ दिइन्छ। हामीले एउटा उत्पन्न गर्नुपर्दछ string त्यो सबै वर्णहरूमा अनौंठो समय हुन्छ। उदाहरण को लागी, aaaaab एक मान्य स्ट्रिंग हो किनभने गणना (a) = 5 र गणना (b) = 1।
तर, aaabbc यहाँ वैध स्ट्रिंग होईन किनकि गणना (b) = २ जुन सम संख्या हो।

उदाहरणका

n = 4
"pppz"

व्याख्या:

"Pppz" एक मान्य स्ट्रिंग हो किनकि 'p' क्यारेक्टर तीन पटक देखा पर्दछ र 'z' क्यारेक्टर एक पटक देखा पर्दछ। नोट गर्नुहोस् कि त्यहाँ धेरै अन्य मान्य स्ट्रिंगहरू छन् जस्तै "ओह" र "प्रेम"।

n = 2
"xy"

व्याख्या:

"Xy" एक मान्य स्ट्रिंग हो किनकि 'x' र 'y' क्यारेक्टरहरू एक पटक देखा पर्दछ। नोट गर्नुहोस् कि त्यहाँ धेरै अन्य मान्य स्ट्रिंगहरू छन् जस्तै "ag" र "ur"।

दृष्टिकोण

हामी यहाँ एउटा ट्रिक प्रयोग गर्न सक्छौं।
यदि स्ट्रि ofको लम्बाई बिजोर नम्बर हो भने हामी यो सिर्जना गर्न भर एकल क्यारेक्टर प्रयोग गर्न सक्दछौं string, र यदि इनपुट लम्बाई पनि संख्या छ भने हामी केवल दुई अक्षरहरूको स्ट्रि create सिर्जना गर्न सक्दछौं।
एक क्यारेक्टर एन -१ पटक देखा पर्दछ (जुन अजीब नम्बर हुनेछ किनकि n यहाँ छ) र एनोटर क्यारेक्टर एक पटक (जुन एक अनौंठो संख्या हो)।

उदाहरण को लागी n = 4, हाम्रो आउटपुट aaab हुनेछ
र यदि n = 3, हाम्रो आउटपुट aaa हुनेछ

चरित्रहरूको साथ स्ट्रिंग उत्पन्न गर्नुहोस् जुन विचित्र गणनामा लेटकोड समाधान छ
हाम्रो समाधानमा हामी केवल अक्षर a र b प्रयोग गर्दैछौं, यदि तपाई चाहानुहुन्छ भने त्यहाँ वर्णहरूको अधिक विकल्पहरू छन्।

कार्यान्वयन

सी ++ प्रोग्राम चरित्रको साथ स्ट्रिंग उत्पन्न गर्नका लागि लेटकोड समाधानमा अनौंठो गणना छ

#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

जटिलता विश्लेषण क्यारेक्टरहरूको स्ट्रिंग उत्पन्न गर्न लेटकोड समाधानमा अनौंठो गणना छ

समय जटिलता

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

ठाउँ जटिलता 

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