• 1
    Entrada e saída
    • Tarefas
  • 2
    Condições
    • Tarefas
  • 3
    Loop for
    • Tarefas
  • 4
    Strings
    • Tarefas
  • 5
    Loop while
    • Tarefas
  • 6
    Listas
    • Tarefas
  • 7
    Matrizes 2D
    • Tarefas
  • 8
    Dicionários
    • Tarefas
  • 9
    Conjuntos
    • Tarefas
  • 10
    Funções e recursão
    • Tarefas
  • к

Lição 4. Lines

Dificuldade:

Tarefa«Competição»

💻 Python

Você participa de uma prestigiada competição literária. O júri aprecia não apenas a profundidade do pensamento, mas também a riqueza da linguagem. Para impressionar, você decidiu analisar sua redação e encontrar a palavra mais longa e a mais curta nela. Isso ajudará você a entender quão diverso é seu vocabulário.

tarefa:
Escreva um programa que aceite uma linha de texto (sua redação) e encontre a palavra mais longa e a mais curta nela.

restrições:

  1. palavra   — É qualquer sequência de caracteres separada por espaços.
  2. pontuação:   Sinais de pontuação no início ou no final da palavra (.,!?;:-) são ignorados. Por exemplo, as palavras "Hello!" e "Hello" são consideradas a mesma.
  3. maiúsculas/minúsculas:   A comparação de palavras deve considerar maiúsculas e minúsculas. Palavras "Hello" e "hello" são consideradas diferentes.
  4. resolução de empate:
    • Se várias palavras tiverem o mesmo comprimento máximo, a mais longa é considerada a primeira em ordem alfabética.
    • Se várias palavras tiverem o mesmo comprimento mínimo, a mais curta é considerada a primeira em ordem alfabética.
  5. entrada vazia: Se não houver palavras no texto (a linha está vazia ou consiste apenas de espaços e sinais de pontuação), o programa deve exibir a mensagem "Nenhuma palavra encontrada".

 

Formato de entrada

Uma linha de texto (string), que pode conter palavras, espaços e sinais de pontuação.

Formato de saída

A palavra mais longa do texto (string). Na próxima linha — A palavra mais curta do texto (string).
Se as palavras não forem encontradas, uma linha "Palavras não encontradas." (string).

Exemplo

Entrada

Olá, paz! Esta é uma palavra muito, muito longa e outra palavra.

Saída

Muito, muito
e

Dica

There will be no clue here, decide for yourself!

main.py
Teste 1
Teste 2
Teste 3
Teste 4
Teste 5
Teste 6
Teste 7
Teste 8
Teste 9
Teste 10
Solução do desenvolvedor
# Заранее определяем строку со знаками препинания, которые нужно удалить
punctuation = '.,!?:;-"()\''

# Получаем строку текста от пользователя
text = input()

# Преобразуем весь текст в нижний регистр для регистронезависимого сравнения
# и разбиваем его на отдельные слова по пробелам
raw_words = text.lower().split()

# Создаем пустой список для хранения очищенных слов
cleaned_words = []

# Используем цикл for для перебора каждого "сырого" слова
for raw_word in raw_words:
    # Удаляем знаки препинания с начала и конца каждого слова
    word = raw_word.strip(punctuation)
    # Если после очистки слово не стало пустым, добавляем его в наш список
    if word:
        cleaned_words.append(word)

# Проверяем, нашлись ли в тексте какие-либо слова
if not cleaned_words:
    # Если список пуст, выводим соответствующее сообщение
    print("Слова не найдены.")
else:
    # Инициализируем самое длинное и самое короткое слово первым словом из списка
    longest_word = cleaned_words[0]
    shortest_word = cleaned_words[0]

    # Начинаем цикл со второго элемента, так как первый уже взят за основу
    for word in cleaned_words[1:]:
        # Условие для поиска самого длинного слова
        # Оно становится новым самым длинным, если его длина больше
        # ИЛИ если длины равны, но оно по алфавиту идет раньше
        if len(word) > len(longest_word) or (len(word) == len(longest_word) and word < longest_word):
            longest_word = word
        
        # Условие для поиска самого короткого слова
        # Оно становится новым самым коротким, если его длина меньше
        # ИЛИ если длины равны, но оно по алфавиту идет раньше
        if len(word) < len(shortest_word) or (len(word) == len(shortest_word) and word < shortest_word):
            shortest_word = word

    # Выводим найденное самое длинное слово
    print(longest_word)
    # Выводим найденное самое короткое слово на новой строке
    print(shortest_word)

🎉 Parabéns! 🎉

Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.

AD

Publicidade

red-snake blue-snake green-snake

Executando seu código...

Assistente de IA

Olá! Sou seu assistente de programação. Faça qualquer pergunta sobre Python — posso explicar funções, métodos e ajudá-lo com a tarefa atual!