• 1
    Entrada y salida de datos
    • Tareas
  • 2
    Condiciones
    • Tareas
  • 3
    Bucle for
    • Tareas
  • 4
    Cadenas de texto
    • Tareas
  • 5
    Bucle while
    • Tareas
  • 6
    Listas
    • Tareas
  • 7
    Matrices 2D
    • Tareas
  • 8
    Diccionarios
    • Tareas
  • 9
    Conjuntos
    • Tareas
  • 10
    Funciones y recursión
    • Tareas
  • к

Lección 3. FOR cycle

Dificultad:

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

Tarea«Orden de palabras»

💻 Python

Eres — Programador en el centro de control de vuelo. De nuestro nuevo Mars rover Kuriosity-2 ha llegado un mensaje importante sobre el estado de sus sistemas. Desafortunadamente, debido a una erupción solar, el orden de las palabras en el mensaje se rompió. Los ingenieros, anticipando esta situación, incorporaron en cada palabra un número del 1 al 9, que indica la posición correcta de la palabra en la oración. Tu tarea — Escribir un programa que restaure el orden inicial de las palabras y descifre el mensaje.

Tarea técnica:
Se suministra una línea a la entrada del programa que consiste en palabras separadas por espacios. Cada palabra contiene garantizadamente un dígito del 1 al 9. Es necesario ordenar las palabras en la línea de acuerdo con estos números y mostrar el resultado.

Restricciones:

  • Si la línea de entrada está vacía, el programa debe devolver una línea vacía.
  • Las palabras consisten solo en letras del alfabeto ruso y un dígito.
  • Los números en la línea de entrada son siempre consistentes y correctos (por ejemplo, si hay 4 palabras, entonces tendrán los números 1, 2, 3, 4).
  • Solo puedes usar construcciones básicas: entrada-salida, operadores condicionales ( if/else ) y bucles   for . No puedes importar módulos ni crear funciones.

Formato de entrada

El mensaje cifrado del Mars rover (cadena, Str).

Formato de salida

Mensaje descifrado y significativo (cadena, str).

Ejemplo

Entrada

O2 B4

Salida

e1tot O2

Pista

There will be no clue here, decide for yourself!

main.py
Prueba 1
Prueba 2
Prueba 3
Prueba 4
Prueba 5
Prueba 6
Prueba 7
Prueba 8
Prueba 9
Prueba 10
Solución del desarrollador
# Получаем зашифрованную строку от пользователя
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)

🎉 ¡Felicidades! 🎉

¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.

AD

Publicidad

red-snake blue-snake green-snake

Ejecutando tu código...

Asistente de IA

¡Hola! Soy tu asistente de programación. Hazme cualquier pregunta sobre Python — puedo explicarte funciones, métodos y ayudarte con la tarea actual.