Teste de Redação

Teste de Redação

The mission is in Blocked Mode. Access to the solutions is blocked for a day or two (even after you share your own), until we'll have enough solutions for you to check. All users who've solved the mission will get the notifications about their opening.

Retirado da OBI Nível Júnior de 2022

Verificação de Aprendizagem: Avalie sua compreensão. Tente resolver sem consultar materiais, usando apenas seu conhecimento. Identifique áreas que precisam de revisão.

Enunciado

Você é estagiário em uma empresa que está desenvolvendo um corretor automático de redações. Sua tarefa é criar a função que verifica se uma redação, dada como uma lista de palavras, é válida.

Uma redação é válida se obedecer **todas** as seguintes regras:

  1. Deve ter no mínimo **N** palavras e no máximo **M** palavras.
  2. Deve ter no mínimo **M/2** palavras *distintas*.
  3. Cada palavra deve ter no mínimo 1 letra e no máximo 10 letras.
  4. Cada palavra deve ser composta **apenas** por letras minúsculas (a-z), sem números, acentos ou pontuação.

Escreva a função `verificar_redacao` que recebe N, M e a lista de palavras, e retorna "OK" se a redação for válida, ou "Inválido" caso contrário.

Restrições: M é sempre par.

Entrada: Um inteiro N (mínimo de palavras), um inteiro M (máximo de palavras) e uma lista de strings `palavras` (a redação).

Saída: A string "OK" ou "Inválido".

Exemplo

    verificar_redacao(2, 10, ["melhor", "que", "machado", "de", "assis"]) >> "OK"

Habilidades

    Manipulação de Strings Lógica de Condições e Decisões Controle de Fluxo e Iteração