Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

projeto do leetcode sobre prefixos

Escreva uma função para encontrar a string com o prefixo comum mais longo em um array de strings.

Se não houver um prefixo comum, retorne uma string vazia ""

link: https://leetcode.com/problems/longest-common-prefix/description/?language=Python

class Solution:
    def longestCommonPrefix(self, strs: list[str]) -> str:
        prefix = "" 
        min_word = min(len(palavra) for palavra in strs)  
        for L in range(min_word): 
            letter_prefix = []
            for palavra in strs: 
                letter_prefix.append(palavra[L])
            if len(set(letter_prefix)) == 1:
                prefix += letter_prefix[0]
            else: 
                break
        return prefix
    

solution= Solution()
resolution = solution.longestCommonPrefix(['casa','carro','cama'])
print(resolution)
                

primeira pergunta:

-Olá, seguinte... ando fazendo alguns exercícios de nível fácil de python de lógica e algoritmos, mas esse exercício em específico me pegou. Consegui montar uns 40% do código, tentei durante 3 dias fazer sozinho mas recorri ao Claude. por que primeiro usamos um loop para procurar a posição e depois a palavra e não o contrário ? e o que acontece exatamente quando o o set entra em ação no código? Quando que vou usar esse tipo de lógica ? (podem me dar exemplos de uso cotidiano)

seguda pergunta:

-estudo para analise de dados, escolhi a área pois faço adm, estou tentando evoluir cada dia mais por conta de na faculdade não mostrar muito sobre python e sql. Acham que um diploma de adm para ser analista de dados na área de marketing, negócios e pessoas válido ?

1 resposta

Oi, Guilherme. Tudo bem com você?

Sobre o exercício, a ordem dos loops é bem estratégica aqui. Você começa iterando pelas posições (L) porque precisa comparar o mesmo caractere em cada string. Se fizesse ao contrário, teria que reiniciar a verificação de posições para cada palavra, o que deixaria a lógica muito mais complexa. Basicamente, você está dizendo: "vou checar a posição 0 em todas as strings, depois a posição 1 em todas, e assim por diante". Isso funciona porque o prefixo só existe se os primeiros caracteres forem iguais, depois os segundos, e assim sucessivamente.

Quanto ao set, ele entra para resolver um problema bem específico. Quando você coloca os caracteres de uma posição dentro de um set, você está removendo duplicatas automaticamente. Se todas as strings têm o mesmo caractere na posição L, o set terá apenas um elemento. Se tiverem caracteres diferentes, terá mais de um. Então verificar se len(set(letter_prefix)) == 1 é uma forma elegante de confirmar que aquele caractere é realmente comum a todas as palavras. Sem o set, você teria que fazer comparações individuais muito mais verbosas.

Essa lógica de usar set para validar uniformidade aparece em vários contextos. Pense em um sistema de controle de acesso onde você verifica se todos os usuários têm a mesma permissão, ou em análise de dados quando você quer confirmar se todas as colunas de um dataset têm o mesmo tipo de dado. Outro exemplo prático: verificar se um formulário foi preenchido corretamente, onde todos os campos obrigatórios precisam ter valores preenchidos (não vazios). Você poderia converter os campos preenchidos em um set e validar quantos itens únicos existem.

Em relação à sua trajetória acadêmica, o diploma de adm é extremamente válido, especialmente para atuar em setores como marketing, negócios e gestão de pessoas. Quem vem da área de negócios possui uma facilidade natural para entender o contexto do problema, formular as perguntas certas e interpretar métricas que impactam a empresa. Unir esse conhecimento do domínio de negócios com habilidades técnicas em Python e SQL cria um perfil bastante competitivo.

Parabéns pela dedicação e por continuar evoluindo. O fórum está à disposição sempre que precisar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!