Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 27.11.2016
Сообщений: 1
1

Метод сжатия строк, основанный на повторяющихся символах

27.11.2016, 11:19. Просмотров 2271. Ответов 1
Метки нет (Все метки)


Можете помочь написать программу на C++, доп. библиотек использовать нельзя
Для управления котами центральный компьютер посылает им команды, состоящие из символом латинского алфавита. Количество операций растет потому что коты должны выполнять много команд и они уже не вмещаются в память котов. Поэтому вам поручили реализовать метод сжатия строк, основанный на повторяющихся символах.

Сжатие строки происходит по следующему алгоритму: изначальная строка делится на отрезки максимальной длины, состоящие из одинаковых символов. После чего каждый отрезок заменяется на сам повторяющийся символ и количество его повторов, но при этом, если символ повторяется только один раз, то количество его повторов не выписывается.

Формат входных данных:

Единственная строка входных данных содержит саму строку, состоящую только из строчных символов латинского алфавита, длина строки не превосходит 50000.

Формат выходных данных:
Выведите сжатую строку.

Sample Input:
aaabbccc
Sample Output:
a3b2c3
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2016, 11:19
Ответы с готовыми решениями:

Метод сжатия Хаффмана
Есть Метод сжатия Хаффмана или нет и как его использовать ? покажите если можите ? ну те кто уже...

Метод сжатия информации LZ
Люди добрые, помогите, тону... Может у кого завалялась программулька для сжатия информации методом...

Статический метод сжатия
Составить статический метод «сжатия» исходной последовательности символов: каждая...

Метод сжатия Хаффмана
Ктонибуть ответит по существу по теме ?

1
344 / 280 / 142
Регистрация: 08.04.2013
Сообщений: 1,210
27.11.2016, 12:50 2
Лучший ответ Сообщение было отмечено adrinxxxx как решение

Решение

насчет обработки длинных строк не знаю, можно с файла и по символам читать, можно в буфер строки определеной длины, разбирайся
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
 char str[]="aaabbaaccccaabbccdddcc";
 int count = 1;
 
cout<<str<<endl;
 
 int n=strlen(str);
 
 for (int i = 0;i < n;i++)
 if (str[i]==str[i+1])  {count++; }
    else {
    
        std::cout << str[i] << count;
        count=1;
        }
return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2016, 12:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Метод сжатия RLE
Помогите написать программу для сжатия данных методом RLE. Чтобы через встроенную граф.систему...

Фрактальный метод сжатия
Всем привет! Возможно у кого-то есть исходники или какие-то программы которые реализуют фрактальный...

zlib метод\уровень сжатия
Как менять метод и уровень сжатия при этом применяя api?

Ionic Zip асинхронный метод сжатия
Доброго времени господа. Помогите пожалуйста реализовать асинхронный метод сжатия. Что я сделал. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.