Rezolvare completă PbInfo #275 PerechiVocale1

Cerinţa

Se dă un text în care cuvintele sunt formate din litere mici ale alfabetului englez şi cifre şi sunt separate prin spaţii şi semne de punctuaţie. Să se determine perechea de vocale alăturate din text care apare de cele mai multe ori.

Date de intrare

Fişierul de intrare perechivocale1.in conţine textul dat, situat pe mai multe linii.

Date de ieşire

Fişierul de ieşire perechivocale1.out va conţine pe prima linie perechea de vocale găsită.

Dacă există mai multe asemenea perechi de vocale, se vor afişa toate, în ordine lexicografică şi separate printr-un spaţiu.

Dacă în text nu există nici o pereche de vocale consecutive, se va afişa mesajul “NU”.

Restricţii şi precizări

  • cuvintele din text sunt formate din cel mult 40 caractere;

Exemplu

perechivocale1.in

aleea ce strabate valea
e-o unduire de pietris scanteietor,
de-aceea nu stii daca zboara sau doar inoata in unde aurii 

perechivocale1.out

ea oa

Explicație

Perechile ea şi oa apar de trei ori. Celelalte perechi de vocale din text apar de mai puţine ori.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema PerechiVocale1:

#include <iostream>
#include <fstream>
#include <cstring>
#include <cassert>
using namespace std;

ifstream fin("perechivocale1.in");
ofstream fout("perechivocale1.out");

int a[26][26];

int main(){
    char s,t;
    s=fin.get();
    while((t = fin.get())!=EOF){
        if( strchr("aeiou",s) && strchr("aeiou",t) )
            a[s-'a'][t-'a']++;
        s = t;
    }
    int Max = a[0][0];
    for(int i=0 ; i<26 ; ++i)
        for(int j=0 ; j<26 ; ++j)
            if( a[i][j] > Max)
                Max = a[i][j];
    for(int i=0 ; i<26 ; ++i)
        for(int j=0 ; j<26 ; ++j)
            if( a[i][j] == Max)
                fout << (char)(i+'a') << (char)(j+'a') << " ";
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #275 PerechiVocale1

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #275 PerechiVocale1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!