लीटकोड सोल्यूशनच्या बलूनची जास्तीत जास्त संख्या


अडचण पातळी सोपे
वारंवार विचारले टेस्ला वेईफेअर
हॅशिंग अक्षरमाळा

समस्या विधान

या समस्येमध्ये, आम्हाला लोअर-केस इंग्रजी अक्षरे असलेल्या वर्णांची एक स्ट्रिंग दिली आहे. “शब्दाची किती उदाहरणे आहेत ती शोधण्याची गरज आहे.बलून”दिलेल्या स्ट्रिंगची अक्षरे वापरुन आपण बनवू शकतो.

उदाहरण

String = "banooll"
1

स्पष्टीकरण:

लीटकोड सोल्यूशनच्या बलूनची जास्तीत जास्त संख्या

String = baqwweeeertylln
0

स्पष्टीकरण: स्ट्रिंगला कोणतेही 'ओ' नसल्यामुळे आपण “बलून” चा एकच संदर्भ बनवू शकत नाही. तर आपण 0 प्रिंट करू.

दृष्टीकोन

हे स्पष्ट आहे की आपल्याला स्ट्रिंगमधील अक्षराची वारंवारता माहित असणे आवश्यक आहे ज्यामुळे “बलून” हा शब्द बनला आहे. म्हणजेच 'b', 'a', 'l', 'o' आणि 'n' अक्षरांची वारंवारता सेव्ह करणे आवश्यक आहे कारण ते “बलून” ही स्ट्रिंग तयार करतात. तर, शब्दाची उदाहरणे किती आहेत हे ठरवण्यासाठी कमीतकमी संख्या असलेले पत्र आम्हाला सापडते. हे याचे विशिष्ट उदाहरण आहे हॅशिंग त्यांच्या वारंवारतेसह वर्ण. लक्षात घ्या की आपण 'l' आणि 'o' अक्षरांच्या फ्रिक्वेन्सीपैकी फक्त अर्धा एक शब्द वापरला जाऊ शकतो. या प्रकरणात सामान्यीकरण करण्यासाठी, आम्ही यापूर्वी दोन अक्षरांची वारंवारता निम्मी करतो.

अल्गोरिदम

  1. 5 पूर्णांक आरंभ करा: बी, ए, एल, ओ, आणि n त्यांच्या संबंधित वारंवारता म्हणून 0
  2. प्रत्येक पात्रासाठी 'chr'स्ट्रिंगमध्ये:
    • तर 'chr'वर वर्णन केलेल्या वर्णांपैकी कोणतेही एक आहे, त्याची वारंवारता वाढवा
  3. विघटित l आणि o 2 द्वारा
  4. त्यातील किमान परत करा बी, ए, एल, ओ, आणि n
  5. निकाल प्रिंट करा

लीटकोड सोल्यूशनच्या अधिकतम बलूनची अंमलबजावणी

सी ++ प्रोग्राम

#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

जास्तीत जास्त बलून लीटकोड सोल्यूशनचे जटिलता विश्लेषण

वेळ कॉम्प्लेक्सिटी

ओ (एन) विशिष्ट वर्णांची वारंवारिता संचयित करण्यासाठी आम्ही एकदा स्ट्रिंग ओलांडली. येथे, N अ‍ॅरेचा आकार.

स्पेस कॉम्प्लेक्सिटी 

ओ (1) आम्ही इनपुटकडे दुर्लक्ष करून स्थिर मेमरी स्पेस वापरत आहोत. आम्ही वारंवारता मोजण्यासाठी काही व्हेरिएबल्स संचयित करतो.