Есть ответ 👍

Сегодня на уроке класс васи проходил различные алгоритмы кодирования данных. однако, уже придуманные алгоритмы кодирования его не заинтересовали, и он решил придумать свой собственный. первый метод, который пришел ему в голову, выглядел так: каждый символ строки, состоящей из латинских строчных символов, кодируется числом от 1 до 26 в обратном алфавитном порядке (символ 'a' кодируется числом 26, символ 'b' — числом 25, и т. а затем все эти числа записываются в одну строку подряд без пробелов. например, строка abza будет закодирована следующим образом: 2625126. все бы ничего, но васин метод оказался не эффективен — полученное закодированное сообщение не всегда можно единственным образом декодировать. однако, вася решил, что это не такая большая проблема — вместо этого он решил по полученному коду восстанавливать строку минимальной возможной длины. если таких строк несколько, ему все равно, какую из них он найдет. ему с этой . формат входного файла в первой строке входного файла input.txt записана строка, состоящая из цифр. ее длина не превосходит 100. гарантируется, что строка получена в результате применения васиного алгоритма кодирования к некоторой строке, состоящей только из строчных латинских букв. формат выходного файла в выходной файл output.txt требуется вывести раскодированную строку — строку, после применения к которой алгоритма васи, получается строка, данная во входном файле. из всех возможных вариантов таких строк, строка в ответе должна иметь минимальную возможную длину. если строк минимальной длины несколько, разрешается вывести любую их них. пример входных и выходных данных input.. символ 'y' кодируется в число 2, а символ 'h' в число 19. также правильным ответом является строка "fr". вариантов декодирования нет.

145
304
Посмотреть ответы 2

Ответы на вопрос:

amadi888
4,5(65 оценок)

Будем последовательно решать для первых i символов кода, основываясь на ответах для i - 1 и i - 2. заметим, что если i-й символ кода равен 0 или ответа для i - 1 не существует, то ответ для i получается добавлением одного символа к ответу для i - 2, если последние две цифры кода нельзя понять, как зашифрованную букву, или ответа для i - 2 не существует, то надо добавить символ к i - 1, а иначе сравнить длины ответов и добавить букву к тому, кто короче. код (python 3.5): codes = ".zyxwvutsrqponmlkjihgfedcba" with open('input.txt', 'r') as f:     encoded = list(map(int,list(f. if len(encoded) == 1:     print(codes[encoded[0]]) else:     decoded = [codes[encoded[0]], ""]     for i in range(1, len(encoded)):         if (decoded[0] is none) or (encoded[i] == 0):             decoded = [decoded[1] + codes[10*encoded[i-1] + encoded[i]], decoded[0]]         elif (10*encoded[i-1] + encoded[i]> 26) or (decoded[1] is none) or \             (len(decoded[1]) > = len(decoded[0])):             decoded = [decoded[0] + codes[encoded[i]], decoded[0]]         else:             decoded = [decoded[1] + codes[10*encoded[i-1] + encoded[i]], decoded[0]]     with open('output.txt', 'w') as f:         f.write(decoded[0])

создание,перемещение,файл только это нашла

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS