• 1
    Entrée et sortie
    • Tâches
  • 2
    Conditions
    • Tâches
  • 3
    Boucle for
    • Tâches
  • 4
    Chaînes
    • Tâches
  • 5
    Boucle while
    • Tâches
  • 6
    Listes
    • Tâches
  • 7
    Tableaux 2D
    • Tâches
  • 8
    Dictionnaires
    • Tâches
  • 9
    Ensembles
    • Tâches
  • 10
    Fonctions et récursion
    • Tâches
  • к

Leçon 3. FOR cycle

Difficulté :

Exercice«Ordre des mots»

💻 Python

Vous & mdash; Programmeur au centre de contrôle de vol. Un message important concernant l'état de ses systèmes est arrivé de notre nouveau Kuriositi-2 Marshore. Malheureusement, en raison d'une éruption solaire, l'ordre des mots dans le message a été perturbé. Les ingénieurs, anticipant cette situation, ont intégré dans chaque mot un chiffre de 1 à 9, qui indique la position correcte du mot dans la phrase. Votre tâche & mdash; Écrire un programme qui restaurera l'ordre initial des mots et déchiffrera le message.

Tâche technique :
Une seule ligne est fournie en entrée au programme, composée de mots séparés par des espaces. Chaque mot contient obligatoirement un chiffre de 1 à 9. Il est nécessaire de trier les mots dans la ligne en fonction de ces chiffres et d'afficher le résultat.

Restrictions :

  • Si la ligne d'entrée est vide, le programme doit retourner une ligne vide.
  • Les mots sont composés uniquement de lettres de l'alphabet russe et d'un seul chiffre.
  • Les chiffres dans la ligne d'entrée sont toujours cohérents et corrects (par exemple, s'il y a 4 mots, ils auront les chiffres 1, 2, 3, 4).
  • Vous ne pouvez utiliser que des constructions de base : entrée-sortie, opérateurs conditionnels (if/else) et boucles   for. Vous ne pouvez pas importer de modules ni créer de fonctions.

Format d entrée

Le message chiffré en provenance du Mars rover (chaîne de caractères, Str).

Format de sortie

Message déchiffré et significatif (chaîne de caractères, str).

Exemple

Entrée

O2 B4

Sortie

e1tot O2

Indice

There will be no clue here, decide for yourself!

main.py
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Solution du développeur
# Получаем зашифрованную строку от пользователя
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)

🎉 Félicitations ! 🎉

Tu as brillamment résolu la tâche ! C était difficile, mais tu as trouvé la bonne solution. Tu es encore plus proche de maîtriser la programmation ! Continue ainsi.

AD

Publicité

red-snake blue-snake green-snake

Exécution de votre code...

Assistant IA

Bonjour ! Je suis ton assistant de programmation. Pose moi toutes tes questions sur Python — je peux t expliquer les fonctions, les méthodes et t aider avec la tâche en cours !