Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/160: Рейтинг темы: голосов - 160, средняя оценка - 4.93
Консультант Витте
 Аватар для DmitryM5
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1

Задача на сжатие строки

27.05.2019, 10:25. Показов 31515. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, подскажите пожалуйста, как можно наиболее проще и наименьшим кодом решить данную задачу:

Стандартное решение:
Python
1
2
3
4
5
6
7
8
9
10
message = "aaaabbсaa"
cnt = 1
for i in message:
    if i == message[1:-1]:
        cnt += 1
        print(i, end='')
    else:
        print(i, end='')
        print(cnt, end='')
        cnt = 1
Задача:
Узнав, что ДНК не является случайной строкой, только что поступившие в Институт биоинформатики студенты группы информатиков предложили использовать алгоритм сжатия, который сжимает повторяющиеся символы в строке.

Кодирование осуществляется следующим образом:
s = 'aaaabbсaa' преобразуется в 'a4b2с1a2', то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки.

Напишите программу, которая считывает строку, кодирует её предложенным алгоритмом и выводит закодированную последовательность на стандартный вывод.

Sample Input 1:
aaaabbcaa
Sample Output 1:
a4b2c1a2

Sample Input 2:
abc
Sample Output 2:
a1b1c1
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2019, 10:25
Ответы с готовыми решениями:

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

Сжатие строки
# 3 функции нужны для стандартизации программ потом (буду использовать в других программах) def ReadArrInteger(n): L = for i in...

Сжатие большой строки в маленькую
Всем привет. Помогите, пожалуйста, решить следующую задачу: Дано: Есть одна сравнительно крупная строка, допустим "Lorem Ipsum -...

4
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
27.05.2019, 12:50
Внизу этой страницы посмотрите, частая задача.
Подсказываю - itertools.groupby.
1
Консультант Витте
 Аватар для DmitryM5
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
29.05.2019, 12:37  [ТС]
dondublon, не нашел что то...
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
29.05.2019, 12:46
DmitryM5, посмотрите внимательнее.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
29.05.2019, 12:49
DmitryM5, Нахождение повторов символа
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2019, 12:49
Помогаю со студенческими работами здесь

Указать ошибку + задача на сжатие строки через процедуру
Здравствуйте, очень часто выручал ваш форум, вот решил и свой вопрос задать. Надеюсь на скорую программистскую помощь. Заранее спасибо. ...

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

Сжатие строки
Пожалуйста помогите. Необходимо написать программу : "Ввести с клавиатуры строку. Сжать строку, т.е. удалить пробелы и табуляции....

Легкое сжатие данных (строки)
есть строка. 30 символов. почти все цифры, есть пара латинских букв. нужно втиснуть эту строку в xs:long, т.е., вообще говоря, в строку из...

Сжатие строки (cgi скрипт)
Сжатие строки Один из простых способов сжатия информации заключается в поиске одинаковых частей, идущих подряд. Вместо нескольких...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru