• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 3. Цикл for

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Порядок слов»

Вы — программист в центре управления полетами. С нашего нового марсохода "Кьюриосити-2" пришло важное сообщение о состоянии его систем. К сожалению, из-за солнечной вспышки порядок слов в сообщении был нарушен. Инженеры, предвидя такую ситуацию, встроили в каждое слово цифру от 1 до 9, которая указывает на правильную позицию слова в предложении. Ваша задача — написать программу, которая восстановит исходный порядок слов и расшифрует сообщение.

Техническое задание:
На вход программе подается одна строка, состоящая из слов, разделенных пробелами. Каждое слово гарантированно содержит одну цифру от 1 до 9. Необходимо отсортировать слова в строке в соответствии с этими цифрами и вывести результат.

Ограничения:

  • Если входная строка пуста, программа должна вернуть пустую строку.
  • Слова состоят только из букв русского алфавита и одной цифры.
  • Цифры во входной строке всегда последовательны и корректны (например, если слов 4, то в них будут цифры 1, 2, 3, 4).
  • Использовать можно только базовые конструкции: ввод-вывод, условные операторы (if/else) и циклы for. Нельзя импортировать модули или создавать функции.

Формат ввода

Зашифрованное сообщение от марсохода (строка, str).

Формат Вывода

Расшифрованное, осмысленное сообщение (строка, str).

Пример

Ввод

о2твет б4удет э1тот вер3ный

Вывод

э1тот о2твет вер3ный б4удет

Подсказка

Тут подсказки не будет, решай сам!

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Получаем зашифрованную строку от пользователя
scrambled_message = input()

# Проверяем, не является ли строка пустой. Если пустая, то и результат - пустая строка.
if not scrambled_message:
    print("")
else:
    # Разделяем строку на отдельные слова по пробелу
    words = scrambled_message.split()
    
    # Создаем пустой список, в который будем складывать слова в правильном порядке.
    # Его размер равен количеству слов во входной строке.
    result_list = [''] * len(words)
    
    # Начинаем цикл по каждому слову в списке перемешанных слов
    for word in words:
        # Внутри этого цикла ищем цифру в текущем слове
        for char in word:
            # Проверяем, является ли текущий символ цифрой
            if char.isdigit():
                # Если это цифра, превращаем ее в число
                position = int(char)
                # Так как нумерация в задаче с 1, а индексы в списке с 0, вычитаем единицу
                index = position - 1
                # Помещаем текущее слово в результирующий список на правильную позицию
                result_list[index] = word
                # Мы нашли цифру, можно прекратить проверку символов в этом слове и перейти к следующему
                break
    
    # Соединяем отсортированные слова из списка обратно в одну строку через пробел
    final_message = " ".join(result_list)
    
    # Выводим итоговое, расшифрованное сообщение
    print(final_message)

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!