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

Программа не проходит некоторые тесты

23.09.2018, 00:11. Показов 2557. Ответов 2

Доброго времени суток, друзья!
Решаю задачу:
вывод
стандартный вывод

Дана строка, состоящая из букв латинского алфавита. В целях ее компрессии разрешается любые ее непустые подстроки (подстрокой называется последовательность идущих подряд символов строки) сжимать по следующему правилу. Строка A, состоящая из повторений некоторой непустой строки B, записывается как символ «(», затем количество повторений (целое число от 1 до 105, записанное без ведущих нулей), затем строка B, и, наконец, символ «)». Например, строку ababab можно сжать, записав ее как (3ab).

В данной задаче допускается повторное сжатие подстрок строки. Разумеется, можно сжимать лишь части, состоящие только из букв латинского алфавита. Например, строку acacacaacacaca можно сжать, записав ее в виде (2acacaca), и осуществить дальнейшую компрессию: (2(3ac)a).

Ваша задача осуществить обратное преобразование, то есть преобразовать строку из сжатого вида в несжатый.
Во входном файле записана непустая строка в сжатом виде. Длина строки не превосходит 1000 символов.
Выведите результат декомпрессии строки. Гарантируется, что длина ответа не превосходит 105 символов. Заметим, что в результате декомпрессии длина строки может уменьшиться.

Входные данные:
(2(3AC)A)
Выходные данные
ACACACAACACACA

Входные данные
(15a)B
Выходные данные
aaaaaaaaaaaaaaaB


Мой код:
Python
1
2
3
4
5
6
7
8
inp = input()
while inp.find('(') != -1:
    left = inp.rfind('(')
    right = inp.find(')')
    tmp = inp[left + 1:right]
    num = ''.join(x for x in tmp if x.isdigit())
    inp = inp.replace(inp[left:right + 1], tmp.replace(num, '') * int(num))
print(inp)
Проблема в том, что программа не проходит третий тест на CodeForces. Ума не приложу, что может быть не так. Буду благодарен за любую помощь.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2018, 00:11
Ответы с готовыми решениями:

Программа не проходит тесты
Здравствуйте, решаю задачу: Имеется список людей с указанием их фамилии, имени и даты рождения....

Программа не проходит определённые тесты
Вот такой вот вышел код для данной задачи но он почему-то не проходит выше второй группы хотя если...

Программа с процедурами не проходит тесты
Добрый день Пишу сюда, так как не могу найти ошибку самостоятельно. Код программы с...

Программа не проходит все тесты на тестовой системе
Дано число K. Дальше следуют K блоков. В каждом блоке есть 4 числа a,b и c,d . Числа натуральные и...

2
164 / 113 / 59
Регистрация: 12.07.2018
Сообщений: 277
23.09.2018, 09:46 2
Цитата Сообщение от IamNotToster Посмотреть сообщение
Ума не приложу, что может быть не так.
Строка 4 должна быть
Python
1
    right = inp[left:len(inp)].find(')') + left
0
0 / 0 / 0
Регистрация: 25.11.2017
Сообщений: 4
23.09.2018, 10:13 3
Спасибо большое за помощь!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2018, 10:13

Программа не проходит тесты по времени, посоветуйте как исправить
Добрый день, не могли бы вы подсказать по задаче. Имеется круг с целыми числами от 1 до n. Числа...

Не проходит тесты
Программа не проходит почему-то тесты, хотя вроде работает, подскажите пожалуйста на счёт EOF, мне...

Не проходит все тесты
#include <iostream> #include <cmath> int main() { long long m, n; std::cin >> m >> n; ...

Не проходит тесты по времени
Здравствуйте. Вот сижу перебираю олимпиадные задачи, и столкнулся с такой проблемой: ...


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

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

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