неділя, 25 грудня 2016 р.

3.4 Файловый ввод/вывод 2 / 6

На прошлой неделе мы сжимали строки, используя кодирование повторов. Теперь нашей задачей будет восстановление исходной строки обратно.
Напишите программу, которая считывает из файла строку, соответствующую тексту, сжатому с помощью кодирования повторов, и производит обратную операцию, получая исходный текст.
Запишите полученный текст в файл и прикрепите его, как ответ на это задание.
В исходном тексте не встречаются цифры, так что код однозначно интерпретируем.
Примечание. Это первое задание типа Dataset Quiz. В таких заданиях после нажатия "Start Quiz" у вас появляется ссылка "download your dataset". Используйте эту ссылку для того, чтобы загрузить файл со входными данными к себе на компьютер. Запустите вашу программу, используя этот файл в качестве входных данных. Выходной файл, который при этом у вас получится, надо отправить в качестве ответа на эту задачу.
Sample Input:
a3b4c2e10b1
Sample Output:
aaabbbbcceeeeeeeeeeb
You have an unlimited number of attempts.
Time limit: 5 mins
You're right! 
a = input()
b = []
for i in range(len(a)):
    if a[i].lower() in 'qwertyuiopasdfghjklzxcvbnm':
        b+=a[i]
        a=a[:i]+"!"+a[i+1:]
c=a.split('!')[1:]
for i in range(len(b)):
    print(b[i]*int(c[i]), end="")

4 коментарі:

  1. inf = open('C:\\Users\\user\\Downloads\\dataset_3363_2.txt', 'r')
    s1 = inf.readline()
    i = 0
    d = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}
    g = ''
    l = 0
    s = ''

    while i < len(s1):
    if s1[i] not in d:
    s = s1[i]
    elif s1[i] in d:
    g += s1[i]
    if s1[i+1] in d:
    i += 1
    continue
    else:
    while l < int(g):
    print(s,end='')
    l += 1
    l = 0
    g = ''

    i+=1

    inf.close()

    ВідповістиВидалити