د بالونونو لیټ کوډ حل خورا ډیر شمیر


مشکل کچه په اسانۍ سره
په مکرر ډول دننه پوښتل کیږي تسلا ویریر
ځورول تار

ستونزه بیان

پدې ستونزه کې ، موږ ته د حرفونو سلسله راکړل شوه چې د ټیټ قضیې انګلیسي توري لري. موږ پکار دي چې د ټکی د څو مثالونو موندل وکړو "بلون"ایا موږ کولی شو د ورکړل شوي تار مزو په کارولو سره رامینځته کړو.

بېلګه

String = "banooll"
1

تشریح:

د بالونونو لیټ کوډ حل خورا ډیر شمیر

String = baqwweeeertylln
0

تشریح: لکه څنګه چې تار هیڅ 'o' نلري ، موږ نشو کولی حتی د "بالون" یوه بیلګه هم جوړه کړو. نو ، موږ 0 چاپ کوو.

او کړنلاره

ښکاره ده چې موږ اړتیا لرو په تورو کې د لیکونو فریکونسۍ پوه شو چې د "بالون" کلمه رامینځته کوي. دا ، دا یوازې زموږ لپاره مهم دي چې د 'b' ، 'a' ، 'l' ، 'o' او 'n' اکرونو فریکونسي خوندي کړو ځکه چې دوی د “بالون” تار تشکیلوي. بیا ، موږ کولی شو خط د امکان تر کچې د مثالونو شمیره پریکړه کولو لپاره لږترلږه شمیره ولرئ. دا یو ځانګړی مثال دی ټوپونه لوښه د هغوی د فریکونسی سره. په یاد ولرئ چې موږ اړتیا لرو په پام کې ونیسو چې د 'l' او 'o' تورو یوازې نیمایي فریکونسیو د یوې کلمې جوړولو لپاره کارول کیدی شي. د دې قضیې عمومي کولو لپاره ، موږ دمخه د دې دوه لیکونو فریکونسي نیمایي کوو.

الګوریتم

  1. inte بشپړه پیل کړئ: b ، a ، l ، o ، او n د دوی اړوند فریکونسۍ ساتل لکه 0
  2. د هرې کرکټر لپارهchrپه تار کې:
    • که 'chr'د پورته ذکر شوي کرکټرونو څخه کوم دی ، د دې فریکونسۍ ډیروي
  3. تقسیم کړئ l او o له خوا 2
  4. لږترلږه په مینځ کې بیرته راګرځئ b ، a ، l ، o ، او 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) لکه څنګه چې موږ یو ځل د ځانګړو کرکټرونو فریکونسۍ ذخیره کولو لپاره سټینګ کوو. دلته، N = د صف اندازه.

د ځای پیچلتیا 

O (1) لکه څنګه چې موږ د آخذې پرته په دوامداره حافظه ځای کاروو. موږ د دوی د فریکونسیو د شمیرلو لپاره ځینې تغیرات ذخیره کوو.