PDA

View Full Version : [PBINFO] Problema #88



~Wolf~
06-12-2020, 04:38 PM
Link site: pbinfo (<b>You have to register to ba able to see this link</b>)
Link problema: palindrom (<b>You have to register to ba able to see this link</b>)
-problema simpla, personal mi-a placut

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

//declaram fisierele
ifstream fin("palindrom.in");
ofstream fout("palindrom.out");

int main()
{
unsigned int n;//declaram n(numarul de cuvinte)
fin >> n;

//declaram un vector de cuvinte
//-> prima dimensiune(100) reprezinta numarul maxim de cuvinte
//-> a doua dimensiune(20) reprezinta numarul maxim de litere intr-un cuvant
char c[100][20];


for (unsigned int i = 1; i <= n; i++)//Citim cele n cuvinte
{
//declaram o variabila palindrom pentru a aflat daca un cuvant este sau nu palindrom
//o initializam cu 1(adevarat) si vom testa negatiile
unsigned int palindrom = 1;

fin >> c[i];
//De ce il scriem ca vector? Fiindca citim cuvantul, nu literele unui cuvant

//parcurgem literele cuvantului c[i]
//mergem cu o litera din stanga si una din dreapta simultan pana ajungem la mijloc
//de aceea punem strlen(c[i])/2
for (unsigned int j = 0; j < strlen(c[i]) / 2; j++)
{
//verificam literele in ordinea pe care o spuneam mai sus
//daca negatia se adevereste, inseamna ca nu avem palindrom si oprim for-ul ce cauta palindromul
if (c[i][j] != c[i][strlen(c[i]) - j - 1])
{
palindrom = 0;
break;
}
}
if (palindrom == 1)//verificam daca cuvantul este palindrom
{
fout << 1 << '\n';
}
else
{
fout << 0 << '\n';
}
}
return 0;
}