बेलुनको अधिकतम संख्याको लेटकोड समाधान


कठिनाई तह सजिलो
बारम्बार सोधिन्छ tesla वेयर
ह्याशिंग घागो

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

यो समस्यामा, हामीलाई अंग्रेजी अक्षरमा लोअर केस भएको अक्षरहरूको स्ट्रिंग दिइन्छ। हामीले शब्दको कतिवटा उदाहरणहरू फेला पार्न आवश्यक छ “बेलुन"हामी दिईएको स्ट्रि ofको क्यारेक्टर प्रयोग गरेर बनाउन सक्छौं

उदाहरणका

String = "banooll"
1

स्पष्टीकरण:

बेलुनको अधिकतम संख्याको लेटकोड समाधान

String = baqwweeeertylln
0

स्पष्टीकरण: स्ट्रि anyमा कुनै 'o' छैन, हामी "बेलुन" को एकल उदाहरण पनि बनाउन सक्दैनौं। त्यसो भए हामी ० प्रिन्ट गर्छौं।

दृष्टिकोण

यो स्पष्ट छ कि हामीले स्ट्रिंगमा अक्षरहरूको फ्रिक्वेन्सी जान्नु आवश्यक छ जसले शब्द "बेलुन" बनाउँछ। त्यो भनेको केवल 'b', 'a', 'l', 'o' र 'n' अक्षरहरूको फ्रिक्वेन्सीहरू बचत गर्नु महत्त्वपूर्ण छ किनकि ती अक्षरहरू “बेलुन” हो। त्यसो भए, हामी सम्भव शब्दको उदाहरणहरूको संख्या निर्णय गर्न न्यूनतम गणना भएको पत्र पाउन सक्दछौं। यो यसको विशिष्ट उदाहरण हो हसिhing तिनीहरूको फ्रिक्वेन्सीको साथ पात्रहरू। नोट गर्नुहोस् कि हामीले विचार गर्नु पर्छ कि 'l' र 'o' अक्षरहरूको आधा फ्रिक्वेन्सी एकल शब्द बनाउन प्रयोग गर्न सकिन्छ। यस केसलाई सामान्यीकरण गर्न हामी यी दुई अक्षरहरूको आधा फ्रिक्वेन्सी पहिले नै गर्दछौं।

अल्गोरिदम

  1. Inte पूर्णांक सुरु गर्नुहोस्: बी, ए, एल, ओ,n को रूपमा सम्बन्धित सम्बन्धित फ्रिक्वेन्सीहरू भण्डारण गर्न 0
  2. प्रत्येक पात्रको लागि 'chr'स्ट्रि inमा:
    • यदि 'chr'माथिको कुनै वर्ण हो, यसको फ्रिक्वेन्सी बढाउनुहोस्
  3. विभाजित गर्नुहोस् lo 2 द्वारा
  4. न्यूनतम फिर्ता गर्नुहोस् बी, ए, एल, ओ,n
  5. परिणाम प्रिन्ट गर्नुहोस्

बेलुनको अधिकतम संख्याको ल्याटकोड समाधानको कार्यान्वयन

C ++ कार्यक्रम

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

int maxNumberOfBalloons(string text)
{
    int b = 0 , a = 0 , l = 0 , o = 0 , n = 0;
    for(char &chr : text)
    {
        switch(chr)
        {
            case 'b' : b++;
                break;
            case 'a' : a++;
                break;
            case 'l' : l++;
                break;
            case 'o' : o++;
                break;
            case 'n' : n++;
                break;
        }
    }

    l /= 2;
    o /= 2;
    return min({b , a , l , o , n});
}

int main()
{
    string text = "blloona";
    cout << maxNumberOfBalloons(text) << '\n';
    return 0;
}

जावा कार्यक्रम

import java.lang.*;

class max_balloons
{
    public static void main(String args[])
    {
        String text = "blloona";
        System.out.println(maxNumberOfBalloons(text));
    }

    static int maxNumberOfBalloons(String text)
    {
        int b = 0 , a = 0 , l = 0 ,  o = 0 , n = 0;
        char chr;
        for(int i = 0 ; i < text.length() ; i++)
        {
            chr = text.charAt(i);
            switch(chr)
            {
                case 'b' : b++;
                case 'a' : a++;
                case 'l' : l++;
                case 'o' : o++;
                case 'n' : n++;
                default: ;
            }
        }

        l /= 2;
        o /= 2;

        return Math.min(b , Math.min(a , Math.min(l, Math.min(o , n))));
    }
}
1

अधिकतम संख्याको बेलुनको लेटकोड समाधानको जटिलता विश्लेषण

समय जटिलता

O (N) हामी केहि वर्णहरूको फ्रिक्वेन्सीहरू भण्डारण गर्न स्ट्रि tra एक पटक पार गर्दछौं। यहाँ, N = एर्रेको आकार।

ठाउँ जटिलता 

O (१) हामी इनपुटको बावजुद स्थिर मेमोरी स्पेस प्रयोग गर्छौं। हामी उनीहरूको फ्रिक्वेन्सीहरू गन्तीको लागि केही भ्यारीएबलहरू भण्डार गर्दछौं।