Cerință:
Pentru un șir de caractere, să se tipărească pe ecran cuvântul DA sau NU dacă acest șir poate fi rearanjat astfel încât să fie un palindrom.
Constrangeri:
Poate fi folosite doar caractere din alfabetul latin cu litere mici
Date de intrare:
Șirul de caractere.
Exemplu:
INPUT:
aaabbbb
OUTPUT:
DA
Răspunsuri la întrebare
Răspuns de
3
Răspuns:
#include <iostream>
#include <cstring>
int main()
{
int inventar['z' - 'a' + 1] = {0};
std::string sir;
int nrImpare = 0;
std::cout << "Șir: ";
std::cin >> sir;
for (int i = 0; i < sir.length(); i++) {
inventar[sir[i] - 'a']++;
}
for (int i = 0; i <= 26; i++) {
if (inventar[i] % 2) {
nrImpare++;
}
}
std::cout << (nrImpare <= 1 ? "DA" : "NU") << std::endl;
}
Explicație:
În palindrom toate literele trebuie să figureze în perechi, cu excepţia literei din mijloc în cazul unui șir de lungime impară.
- Numeri câte exemplare sunt din fiecare literă
- Numeri câte litere au număr de exemplare impar
Poate fi palindrom dacă numai o literă sau nici o literă are număr de exemplare impar.
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă