Maksimal söz tezliyi#6940

Maksimal söz tezliyi (Həll təhlili)

Alqoritm Analizi

map<string, int> m məlumat strukturunu elan edirik, burada hər bir sözün neçə dəfə təkrarlandığını hesablayacağıq. Sonra ən çox təkrarlanan sözü tapırıq. Belə sözlər bir neçədənədirsə, onda leksikografik olaraq ən böyük olanını çıxarırıq.

Alqoritm Tətbiqi

m xəritəsində hər bir sözün neçə dəfə təkrarlandığını hesablayırıq.

map<string,int> m;

Sözləri oxuyub sayırıq.

cin >> n;
for (i = 0; i < n; i++)
{
    cin >> s;
    m[s]++;
}

res sözünü tapırıq, bu söz mx dəfə təkrarlanıb.

mx = 0;
for (auto x : m)
{
    if (x.second >= mx)
    {
        mx = x.second;
        res = x.first;
    }
}

Maksimum tezlikdə və tezliyin özündə olan sözü çıxarırıq.

cout << res << " " << mx << endl;

Java Tətbiqi

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner con = new Scanner(System.in);
        TreeMap<String, Integer> tree = new TreeMap<String, Integer>();
        int test = con.nextInt();

        while(test-- > 0)
        {
            String s = con.next();
            tree.put(s, tree.getOrDefault(s, 0) + 1);
        }

        int max = -1;
        String res = null;
        for(String s : tree.keySet())
        {
            int n = tree.get(s);
            if (n >= max)
            {
                res = s;
                max = n;
            }
        }

        System.out.println(res + " " + max);
        con.close();
    }
}