Решение задачи Исправление опечаток с Codeforces

Без пояснения   Просмотров: 26


Многие современные текстовые редакторы автоматически проверяют вводимый текст на наличие ошибок, а некоторые редакторы даже предлагают варианты исправления ошибок.

В этой задаче вам предлагается реализовать небольшую функциональность по исправлению двух типов опечаток в слове. Будем считать, что наличие трех или более одинаковых букв подряд является опечаткой (например, слово «helllo» записано с опечаткой). Кроме того, наличие пары одинаковых букв и непосредственно следом другой пары одинаковых букв тоже является опечаткой (например, слова «helloo» и «wwaatt» записаны с опечатками).

Напишите программу, которая удаляет из слова наименьшее количество букв так, чтобы слово не содержало описанных выше опечаток. Разрешается удалять буквы как с обоих концов слова, так и из его середины.

Код

#include<bits/stdc++.h>
using namespace std;
int main(){
    char a,b=0,c=1,d=2;
    while(cin>>a){
        if(!(a==b&&b==c)&&!(a==b&&c==d)){
            cout<<a;
            d=c;
            c=b;
            b=a;
        }
    }
} 

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться