Faça uma função que receba um inteiro n como argumento e retorno uma lista de Abcde, Bcdef, Cdefg, …, Zabcd,
ABcde, BCdef, CDefg, …, ZAbcd,
ABCde, BCDef, CDEfg, …, ZABcd,
ABCDe, BCDEf, CDEFg, …, ZABCd,
ABCDE, BCDEF, CDEFG, … ,ZABCD,
ZBCDE, ZCDEF, ZDEFG, … ,ZZABC,
ZZBCD, ZZCDE, ZZDEF, … ,ZZZAB,
ZZZBC, ZZZCD, ZZZDE, … ,ZZZZA,
ZZZZB, ZZZZC, ZZZZD, … ,ZZZZZ.
A função deve retornar uma lista com todos os strings gerados de tamanho n:
Cabeçalho da função: gera_nomes ( n )
Argumento: n, int: tamanho dos nomes.
Saída: [str]: lista de strings com os nomes de tamanho n.

Passo 1

Beleza, vamos entender o que a questão está pedindo. A gente precisa criar uma função chamada gera_nomes que recebe um número inteiro n. Essa função vai retornar uma lista de strings que seguem um padrão específico com letras do alfabeto. O conteúdo principal aqui envolve manipulação de strings e uso do alfabeto inglês. Vamos precisar conhecer como iterar sobre letras e como gerar combinações seguindo o padrão descrito.

Passo 2

Primeiro, vamos pensar em como representar o alfabeto. Em Python, podemos usar a string "ABCDEFGHIJKLMNOPQRSTUVWXYZ" para ter todas as letras maiúsculas. A gente vai precisar manipular essas letras para criar as sequências solicitadas.

Passo 3

Para gerar as sequências, vamos precisar considerar todas as combinações possíveis de letras com o tamanho n. Já que o padrão envolve “circularidade” no alfabeto (por exemplo, após “Z” vem “A” de novo), precisamos tratar isso para que nossa função não pare no fim do alfabeto.

Passo 4

Vamos usar a ideia de “rotacionar” o alfabeto. Isso significa que, para cada posição inicial, vamos pegar n letras consecutivas, voltando ao início do alfabeto se necessário. Por exemplo, se n=5 e começarmos com “Z”, a sequência seria “ZABCD”.

Passo 5

Para implementar isso, vamos iterar sobre cada letra do alfabeto como ponto de partida. Em cada iteração, vamos pegar as próximas n-1 letras, cuidando para circularmos de volta ao início se ultrapassarmos “Z”. Isso pode ser feito usando o operador módulo % para ficar dentro dos limites do alfabeto.

Passo 6

Vamos juntar essas letras em uma string e adicionar à nossa lista de resultados. No final, vamos ter uma lista com todas as combinações possíveis de tamanho n seguindo o padrão descrito.

Passo 7

Agora, vamos colocar tudo isso em código. Vamos definir a função gera_nomes que implementa essa lógica.

Resposta

A função gera_nomes acima atende ao que foi solicitado, gerando uma lista de strings com o tamanho especificado n seguindo o padrão circular do alfabeto.

Exercícios relacionados