Răspuns :
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
public class prog {
public static void main(String[] args) throws Exception {
//Creaza BufferedReader pentru intrare standard
InputStreamReader inputStreamReader = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(inputStreamReader);
//Folosim un sorted map pentru a retine perechi de tipul (cheie=sir caractere, valoare = int) unde cheia e cuvantul si valoarea e numarul de aparitii
SortedMap<String, Integer> smp = new TreeMap<>();
//Cat timp avem linii de citit, citeste linia
String linie_curenta = reader.readLine();
while(linie_curenta != null){
//Separa linia in array de cuvinte
String[] arr = linie_curenta.split(" ");
//Mareste numarul de aparitii pentru fiecare cuvant gasit
for (String cuv: arr) {
//Daca e sir gol sari peste
if(cuv.length()==0) continue;
Integer val_anterioara = smp.get(cuv);
if(val_anterioara==null)
val_anterioara=0;
smp.put(cuv, val_anterioara + 1);
}
linie_curenta = reader.readLine();
}
//Cauta si afiseaza cuvant cu numar maxim de aparitii
String cuv_maxim = "";
int nr_aparitii = 0;
for (Map.Entry mapElement : smp.entrySet()) {
int value = (int)mapElement.getValue();
if(value>nr_aparitii){
cuv_maxim = (String)mapElement.getKey();
nr_aparitii = value;
}
}
//Afiseaza rezultat
System.out.println(cuv_maxim);
}
}
► Explicatie :
Folosim SortedMap pentru a retine perechi de tipul (cheie, valoare) unde
- cheie = cuvantul
- valoare = numarul de aparitii a cuvantului respectiv
Incrementam de fiecare data numarul de aparitii al cuvantului.
La final luam la rand toate elementele si determinam cuvantul care are numarul maxim de aparitii care apare primul in SortedMap. Fiind o structura sortata unde cheia este String cheile vor aparea in ordine lexicogramaticala. Din acest motiv il luam pe primul element.
Iti sugerez sa cauti pe internet informatii cu privire la SortedMap si la functiile folosite pentru a intelege mai bine cum functioneaza programul
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Ne vedem curând și nu uitați să ne adăugați la marcaje!