В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
spaisminGena
spaisminGena
10.02.2021 09:16 •  Информатика

Будем рассматривать только строчки, состоящие из заглавных латинских букв. например, рассмотрим строку b. длина этой строки равна 14. поскольку строка состоит только из латинских букв, повторяющиеся символы могут быть удалены и заменены числами, определяющими количество повторений. таким образом, данная строка может быть представлена как 4ab5c4d. длина такой строки 7. описанный метод мы назовем упаковкой строки. напишите программу, которая берет упакованную строчку и восстанавливает по ней исходную строку. входные данные одна упакованная строка. в строке могут встречаться только конструкции вида na, где n - количество повторений символа (целое число от 2 до 99), а a - заглавная латинская буква, либо конструкции вида a, то есть символ без числа, определяющего количество повторений. максимальная длина строки не превышает 80. выходные данные выведите восстановленную строку. при этом строка должна быть разбита на строчки длиной ровно по 40 символов (за исключением последней, которая может содержать меньше 40 символов). примеры вход выход 3a4b7d aaa 22d7ac18fgd gd 95ab b

Показать ответ
Ответ:
1234567891243
1234567891243
06.10.2020 04:09
// PascalABC.NET 3.2, сборка 1421 от 22.04.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadlnString.MatchValues('((\d*[A-Z]))');
  var r:string:='';
  foreach var c in s do
    if c.Length=1 then r:=r+c
    else r:=r+c[:c.Length].ToInteger*(c[c.Length]);
  Writeln(r)
end.
0,0(0 оценок)
Ответ:
llllll13
llllll13
06.10.2020 04:09
# Python 3.X

source = input('Введите строку: ')

ret = ''
for idx, char in enumerate(source):
    try:
        next = source[idx + 1]
        if char.isdigit() and next.isdigit():
            qt = 10 * int(char) + int(next)
            next = source[idx + 2]
        else:
            qt = int(char)
    except:
        ret += char
    else:
        ret += next * (qt - 1)

print('ответ:', ret)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота