Article image
Regilene Silva
Regilene Silva28/09/2024 14:54
Compartilhe

Sobre o Hackerhank

    O hackerhank, para quem não conhece, é uma plataforma que oferece desafios de programação em vários níveis, várias linguagens e tópicos,  como algoritmos, estruturas de dados, inteligência artificial e bancos de dados.

    Ele tem essa carinha e se tu tem praticado os desafios de código da DIO, não há nada de muito novo, nem de assustador  por aqui. Se tu não tem praticado os desafios de código da DIO, tsc,tsc,tsc…

    image

    Se tu já está enviando teus primeiros currículos pra estágio ou (emprego mesmo), já deve ter se deparado com as questões do hackerrank, se ainda não conhece aproveita e vai conhecer. É bem desafiador resolver 15 questões em 1 hora e meia de tempo, por exemplo. Então vamos discutir maneiras de otimizar a resolução.

    Treine a leitura da questão, treine a estruturação,  e treine a resolução dentro de um limite de tempo. Isso é para se habituar a ver o cronômetro ‘rodando’ e não se desesperar.

    Se habitue com a estrutura do hackerrank:

    Descrição do problema, descrição da função e o que ele espera como retorno, as restrições, e os exemplos de input e output.

    Aprendendo a ler a questão:

    Por exemplo:

    Em Python -- > basic 

    image

    Interpretação da questão: 

    1 - Existe uma string (ex: escola),onde i e j são posições.

    2 - Existe um intervalo:

    Onde a posição i inicia e a posição j encerra o intervalo.

    3- Dentro desse intervalo:

    Alteramos o caso das letras, se elas estão maiúsculas, invertemos para minúscula e vice e versa.

    4- Restrição: O resto da string deve permanecer o mesma.

    Anotações que tu deve fazer:

    1° - Dada uma string.

    Qual é a string? escrevo um exemplo pra ir desenhando as respostas: escola

    Onde ela começa (i)? insiro 1

    Onde ela termina(j)? insiro 4

    image

    Essa é uma questão muito básica envolvendo validação por tipo de conteúdo dentro do capítulo sobre Manipulação de String( que tem tópicos como isalpha(), isdigit(), strip() e split()). Aqui serão necessários métodos como swapcase(), islower() e isupper(). E se tu sabe manipular e  acessar arrays por meio de índices, fica muito mais fácil.

    1° Tenha papel e caneta à mão.

    2° Leia com atenção a questão.

    3° Releia e anote os dados relevantes.

    Com um esboço é possível ver com clareza que entre o índice 1 e o 4 as letras terão seus casos invertidos.

    image

    Eu gosto de começar a resolver com a captura da entrada do usuário.

    image

    As variáveis palavra, i, j vão armazenar a entrada do usuário, e quando chamar a função elas serão passadas como argumento para o parâmetro da função. 

    Parâmetros da função (palavra, i, j).

    Escrevendo a função:

    image

    Tudo o que a função fez foi:

    intervalo_inicial: Armazenar os caracteres de 0 até i (no caso é definido como 1 pelo usuário).

    intervalo_j:Armazenar de i (1) até j (4) +1 e esses valores o swapcase() inverteu em intervalo_i.

    intervalo_final_j:Armazenar o restante dos caracteres de j até o final + 1:

    Concatenação: Depois de armazenado, os valores que foram fatiados são concatenados.

    Observando a entrada do usuário:

    image

    Dicas:

    Leia o enunciado com atenção,  identifique o problema, o objetivo, e estude os exemplos.

    Entenda o formato das entradas e saídas (input/output).

    Atenção às limitações  e restrições.

    Faça um esboço da solução, pode ser um pseudocódigo.

    Entenda que tipo de operação o problema requer. É uma busca? Um problema de ordenação? Alguma transformação de dados? Identificar o tipo de operação facilita a escolha do algoritmo.

    Verifique os erros mais comuns, que ocorrem com mais frequência.

    E não esqueça de praticar! Quanto mais tu pratica, melhor se tornará em interpretar e resolver os problemas de forma rápida e eficiente.

    REFERÊNCIAS:

    Hackerhank

    Ebook Introdução-ao-Python - Repositório da IFRN

    Introdução-à-programação-com-python - Nilo-Ney-Coutinho-Menezes

    Craking-the-code-interview-Gayle Laakmann McDowell

    Bons estudos e bom fim de semana a todos!

    Compartilhe
    Comentários (2)
    Felipe Reis
    Felipe Reis - 28/09/2024 19:01

    muito bom esse tópico, usei hackerhanka um tempo e perdi minha conta, mas ele ajuda muito com questões de logica e pratica

    Otávio Rosa
    Otávio Rosa - 28/09/2024 19:00

    Vou testar, preciso de algo nesse sentido para praticar!