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.
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
Descreva o problema, as motivações para resolvê-lo e os desafios que exigem o uso de uma solução computacional e a aplicação dos recursos do GeoPandas;
Descreva os principais algoritmos envolvidos na solução proposta;
O programa principal deve apresentar ao usuário um menu com as possibilidades de execução de cada função acima. Além disso, deve fazer a verificação de entrada de cada valor que o usuário tiver que digitar e deve apresentar os resultados de forma adequada e deve esperar que o usuário decida voltar ao menu principal. O menu deve apresentar também a possibilidade de sair do programa principal e, nesse caso, este deve apresentar uma mensagem de fim de execução do programa.
Programe uma função Python que gere uma lista de n
inverte os 2 primeiros dígitos:
inverte os 3 primeiros dígitos:
…
inverte os 9 dígitos e pára:
inverte os 2 primeiros dígitos:
inverte os 3 primeiros dígitos:
…
inverte os 9 dígitos e pára:
A função terá outro argumento inteiro inv que informará o número máximo de dígitos que serão invertidos na geração de \begin{tabular}{r|l}
\hline Cabeçalho da função: & gera_numeros_de_telefone(n,inv) \
\hline Cabeçalho da função: & gera_numeros_de_telefone(n,inv) \
\hline Argumento: &
\
n, int: quantidade de inv, int: quantidade máxima de dígitos a serem invertidos na |
geração de |
\hline Saída: &
\
([str], bool): tupla com a lista dos n um booleano indicando se foram gerados todos os n telefone |
\hline
\end{tabular}
\end{tabular}