fbpx

Problema #2582 – SecvElim – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

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.

Date de intrare

Programul citește de la tastatură un șir de caractere.

Date de ieșire

Programul va afișa pe ecran șirul obținut.

Restricții și precizări

  • șirul dat conține maximum 255 de caractere
  • nu se face diferență între literele mari și mici

Exemplu

Intrare

aAcboOoBcAXa

Ieșire

AXa
#include <bits/stdc++.h>

using namespace std;

char s[256];

void stergere(int i , int l)
{
    for( ; s[i]!= '\0' ; i++)
        s[i - l] = s[i];
    s[i-l]='\0';
}

int main()
{
    cin >> s;
    int i = 0;
    int  l = 1;
    bool ok = true;
    while(s[i]!='\0')
    {
        if(tolower(s[i])==tolower(s[i-1]))
            l++;
        else
        {
            if(l > 1)
                stergere(i , l) , i=0;
            l=1;
        }
        i++;
        if(s[i]=='\0' && ok)
            s[i]=' ' , s[i+1]='\0' ,ok=false;
    }
    cout << s;
    return 0;
}
Comentarii

S-ar putea sa iti placa