середа, 11 травня 2016 р.

Base RLE decode – python 3 using generator

def rle_decode(string):
    def split_series(text):
        temp, iterator, number = "", iter(text), ""
        for element in iterator:
            number = ""
            if not element.isdigit():
                temp = element
                element = next(iterator)
                while element.isdigit():
                    number += element
                    element = next(iterator)
                yield (temp, int(number))
                temp = element
            else:
                number = element
                try:
                    element = next(iterator)
                    while element.isdigit():
                        number += element
                        element = next(iterator)
                    yield (temp, int(number))
                except StopIteration:
                    yield (temp, int(number))
                temp = element



    def decode_series(series):
        return ''.join(map(str, [k * i for k, i in series]))

    return decode_series(split_series(string))

print(rle_decode(input()))

Немає коментарів:

Дописати коментар