Решение задачи "Сжатие бинарных последовательностей " с Acmp

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


Последовательность из символов «0» и «1» называется бинарной. Они широко применяются в информатике и других науках. Одно из неудобств бинарных последовательностей – их трудно запоминать. Для решения этой проблемы были предложены разные способы их сжатия. Программист Слава использует следующий способ: просматривая последовательность слева направо, он заменяет «1» на «a», «01» на «b», «001» на «c», …, «00000000000000000000000001» на «z». Напишите программу, которая поможет Славе автоматизировать этот способ сжатия.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    string str,res;
    cin >> str;
    int k = 0;
    int pos = str.find('1');
    while(pos + 1){
        k = 0;
        for(int i = pos - 1; i >= 0; --i){
            if(str[i] == '0')
                k++;
            else
                break;
        }
        res.push_back(97 + k);
        pos = str.find('1',pos + 1);
    }
    cout << res;
    return 0;
}

         

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


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

Комментарии

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