Lista de probleme 972

Filtrare

Se dau n șiruri de caractere care conțin cuvinte formate doar din litere mici și mari ale alfabetului englez, separate prin câte un singur spațiu.

Să se afișeze un nou șir format din primul cuvânt al fiecărui șir în ordinea citirii, al doilea cuvânt al fiecărui șir în ordinea citirii, etc. Dacă șirurile nu au același număr de cuvinte, se continuă acest proces, până când fiecare șir ajunge la final, tot în ordinea citirii.

Se dă un șir de caractere care conține cuvinte formate doar din litere mici și mari ale alfabetului englez, separate printr-un spațiu. Să se afișeze cuvintele din șir, fiecare fiind urmat de inversul său. Cuvintele afișate sunt separate printr-un spațiu.

#2732 Succesor C++

Scrieți funcția având următorul antet:

void Succesor(int a[], int n, int k)

Vectorul a memorează, în ordine strict crescătoare, k numere naturale din mulțimea {1,2,...,n}. Funcția va trebui să obțină tot în vectorul a următoarea submulțime de k elemente din punct de vedere lexicografic.

Se dă un șir de caractere care conține doar litere mici și mari ale alfabetului englez. Se parcurge șirul de la stânga la dreapta și dacă se întâlnește o secvență de litere alăturate egale, se șterge. Dacă în urma acestei operații se obține o nouă secvență de litere egale, se șterge și ea, ș. a. m. d.

Să se afișeze șirul obținut.

#2730 SC C++

Scrieți funcția recursivă având următorul antet:

int SC(char s[])

Funcția primește ca parametru un șir de caractere și returnează suma tuturor cifrelor care apar în șir.

Se dă un șir de caractere în care cuvintele sunt formate din litere mici și mari ale alfabetului englez și sunt separate prin spații.

Să se afișeze cuvintele pe ecran, fiecare cuvânt pe câte o linie, în ordinea descrescătoare a numărului de litere. Dacă două cuvinte au același număr de litere atunci ele se vor afișa în ordine lexicografică.

Se citește un șir de caractere reprezentând o propoziție care conține litere mari și mici ale alfabetului englez, spații, cifre și alte simboluri. În cele ce urmează, considerăm cuvânt orice secvență delimitată de spații ce conține cel puțin o literă.

Se se afișeze șirul citit astfel încât cuvintele de lungime maximă să fie înlocuite cu inversul (oglinditul) lor, restul cuvintelor și aranjarea lor în propoziție să rămână neschimbate.

#2721 Insert C++

Să se scrie funcția cu următorul antet:

void Insert(int a[], int &n)

Funcția primește ca parametri un vector a de numere naturale și n – numărul elementelor vectorului. Să se insereze după fiecare număr impar dublul său.

Metoda Bucket Sort constă în distribuirea elementelor în mai multe grupe, numite “bucket-uri”. Apoi fiecare bucket este sortat individual folosind un algoritm de sortare oarecare.

#2700 RadixSort C++

Cerința

Fiind dat un șir cu n elemente, nu neapărat distincte, se cere sortarea crescătoare a acestuia folosind metoda Radix Sort.

Best of CNCV /a 2018