100+ Perguntas de Codificação para Programadores

>

>>

>

imagem_crédito- Coderustos 3.0: Preparação mais rápida da Entrevista de Codificação com Desafios Interativos & Visualizações

Entrevistas de Codificação são uma coisa tão importante na vida de um programador que ele não consegue escapar com isso. É o primeiro obstáculo que eles precisam atravessar para conseguir o trabalho de programador de software que desejam durante toda a sua vida escolar e universitária.

Para piorar a situação, você verá que tantas pessoas na internet dizendo que a entrevista de codificação é falha, o processo de contratação de programadores é uma porcaria e assim por diante, mas você não precisa prestar atenção a eles, pelo menos no início de sua carreira.

Eles podem estar certos, mas estão dentro do trem em que você está tentando entrar. Não importa o quanto eles critiquem as entrevistas de codificação e o processo de contratação de programadores, muitos deles passaram pelo mesmo caminho até onde estão.

Todos sabemos que o Sistema de Entrevista de Codificação não é perfeito e muitos estão tentando mudá-lo, mas até que ele seja mudado, você tem que seguir suas regras para entrar no Sistema. Isto é algo para desenvolvedores experientes lidarem, como desenvolvedor júnior sua prioridade deve ser limpar a entrevista de codificação e conseguir o trabalho que deseja.

Como autor de um blog Java e de uma publicação Medium, eu recebo muitas consultas relacionadas a problemas de codificação e como lidar com eles e é por isso que continuo escrevendo artigos como este que tem ajudado muitos programadores direta e diretamente em sua carreira.

Neste artigo, vou compartilhar com vocês 100 problemas de codificação de entrevistas de trabalho de programação que todo programador deve saber.

Agora isso, eu limpei a confusão de que a Entrevista de Codificação é importante e vocês não devem distrair, vamos entrar em trabalho real. A grande questão é o que preparar para entrevistas de Codificação?

Bem, a coisa mais importante a preparar é problemas de codificação baseados na Estrutura de Dados, como problemas de codificação baseados em array, problemas de string, problemas de lista ligada, problemas de árvore binária, etc.

Parte de perguntas baseadas em estrutura de dados, a maioria das entrevistas de trabalho de programação também fazem algoritmo, design, manipulação de bits e perguntas baseadas em lógica geral, que descreverei nesta seção.

É importante que você pratique estes conceitos porque às vezes eles se tornam difíceis de resolver na entrevista propriamente dita. Ter praticado antes não só o torna familiarizado com eles, mas também lhe dá mais confiança para explicar a solução ao entrevistador.

Um dos principais problemas com problemas de codificação é que há centenas e milhares de problemas de codificação em entrevistas, há até mesmo sites como LeetCode, HackerRank, Codewars, Topcoder, freeCodeCamp, HackerEarth, que treinam programadores para a codificação de entrevistas com muitas perguntas difíceis, o que às vezes simplesmente ultrapassa um iniciante à procura de um emprego.

Eu acredito na simplicidade e nos 10% de esforço que produzem 90% dos resultados e é por isso que colecionei os 100 maiores problemas de codificação, que não são muito difíceis e que também são frequentemente solicitados em entrevistas reais.

Solucionar estes problemas não só lhe dá confiança mas também o ajuda a reconhecer alguns dos padrões algorítmicos mais comuns que também o ajudará a resolver alguns problemas invisíveis em entrevistas reais.

Recursos para entrevistas de codificação

Selecção de bons recursos é muito importante para o sucesso nas suas entrevistas de codificação. Se você escolher um recurso errado, então mais do que dinheiro, você perderá tempo valioso que você precisa para a preparação, portanto gaste algum tempo pesquisando por um bom recurso.

Se você precisar de recomendações, a seguir estão alguns dos meus recursos experimentados e testados para aprender em profundidade a Estrutura de Dados e Algoritmos para codificação de entrevistas:

  • Estruturas de Dados e Algoritmos: Mergulho profundo usando Java para desenvolvedores Java. Aprenda sobre Arrays, Linked Lists, Trees, Hashtables, Stacks, Queues, Heaps, Sort algorithms e Search algorithms

>

    >

  • Algoritmos e Estruturas de Dados em Python para aqueles que amam Python
    Um guia para implementar os algoritmos mais atualizados a partir do zero: arrays, linked lists, algoritmos gráficos e classificação
  • >

>

    >

  • Algoritmos JavaScript e Estruturas de Dados Masterclass da Colt_Steele para programadores JavaScript. O Bootcamp de Entrevista de Codificação e Informática Ausente. Aprenda tudo o que você precisa para aceitar difíceis entrevistas de codificação.
  • Dominar Estruturas de Dados & Algoritmos usando C e C+++ para aqueles que são bons em C/C++
  • Estruturas de Dados em Java: Uma Entrevista Refresher da Equipe Educacional para atualizar importantes conceitos de Estrutura de Dados e Algoritmos em Java. Este curso contém uma revisão detalhada de todas as estruturas de dados comuns e fornece detalhes de nível de implementação em Java para permitir que os leitores fiquem bem equipados.
  • Grokking the Coding Interview: Patterns for Coding Questions de Fahim ul Haq e The Educative Team
    Este é como o meta-curso para entrevistas de codificação, que não lhe ensinará como resolver um problema de codificação mas, em vez disso, como resolver um tipo particular de problemas de codificação usando padrões. Domine estes 15 padrões subjacentes para entrevistar perguntas, e você será capaz de lidar com qualquer coisa que você enfrentar na entrevista

E, se você preferir livros, não há melhor do que o Cracking The Coding Interview, de Gayle Laakmann McDowell que apresenta 189+ Perguntas e solução de programação. Um bom livro para preparar para programar entrevistas de trabalho em um curto espaço de tempo. Btw, eu também vou ganhar algum dinheiro se você comprar algum desses recursos mencionados aqui.

>

>

>

algumas dicas para entrevistas de codificação

  1. Não há melhor maneira de fazer bem em entrevistas de codificação do que praticar o maior número possível de problemas de codificação. Isto não só treinará sua mente para reconhecer padrões algorítmicos em problemas, mas também lhe dará a confiança necessária para resolver o problema que você nunca viu antes.
  2. As minhas segundas dicas são para aprender sobre o máximo de estrutura de dados e algoritmos possíveis. Esta é uma extensão da dica anterior, mas também envolve a leitura e não apenas a prática. Por exemplo, se você sabe sobre a tabela de hash você também pode facilmente muitos problemas baseados em array e contador. O mesmo é verdade para árvore e gráfico.
  3. Se escolher a estrutura de dados correta é uma parte muito importante do desenvolvimento de software e codificação de entrevista e a menos que e até que você os conheça, você não será capaz de escolher.
  4. Time você mesmo – candidatos que resolvem problemas de entrevista dentro do tempo limite e rapidamente são mais prováveis de se sair bem na entrevista, então você também deve se cronometrar.
  5. Pense em casos de limite e execute seu código através deles. Alguns bons casos de margem podem ser o input vazio, algum input estranho ou algum input realmente grande para testar as condições e limites.
  6. Após resolver o problema, tente explicar a um amigo ou colegas como também está interessado em codificar problemas. Isto lhe dirá se você realmente entendeu o problema ou não. Se você pode explicar facilmente significa que você entendeu. Além disso, a discussão faz sua mente trabalhar e você poderia encontrar uma solução alternativa e capaz de encontrar algumas falhas em seus algoritmos existentes.
  7. Outra dica útil para superar Entrevistas de codificação é aparecer na entrevista de codificação e muitas delas. Você se encontrará melhorando a cada entrevista e isso também o ajuda a obter várias ofertas, o que lhe permite negociar melhor e obter aqueles 30K a 50K extras que você geralmente deixa em uma mesa se você tiver apenas uma oferta em mãos.
  8. Btw, Se você está pronto para a Entrevista de Codificação, então você também pode fazer o quiz do TripleByte e ir diretamente para a rodada final de entrevistas com empresas de alta tecnologia como Coursera, Adobe Acrobat, Dropbox, Grammarly, Uber, Quora, Evernote, Twitch, e muitas outras. Eu não sabia sobre o Triplebyte antes, mas eles estão prestando um ótimo serviço para quem procura emprego. Um grande obrigado a eles.

Top 100 Problemas de codificação de entrevistas de trabalho de programação

Sem perder mais tempo, aqui está a minha lista de 100 problemas de codificação de entrevistas de trabalho de programação. Para obter a maior parte desta lista, sugiro que realmente resolva o problema.

Faça-o você mesmo, não importa se você ficou preso porque essa é a única maneira de aprender. Depois de resolver alguns problemas, você ganhará confiança. Eu também sugiro que você olhe para a solução quando você prendeu ou depois de ter resolvido o problema, desta forma você aprende a comparar diferentes soluções e como abordar um problema de um ângulo diferente.

  1. Como um algoritmo de ordenação de bolhas é implementado? (solução)
  2. Como é implementado um algoritmo de ordenação de bolhas? (solução)
  3. Como se conta a ocorrência de um determinado caractere em uma string? (solução)
  4. Como se imprime o primeiro caractere não repetido de uma string? (solução)
  5. Como converter uma determinada String em int como o atoi()? (solução)
  6. Como você implementa um algoritmo de classificação de baldes? (solução)
  7. Como você implementa um algoritmo de ordenação de contagem? (solução)
  8. Como você remove duplicatas de um array no lugar? (solução)
  9. Como se inverte um array no lugar em Java? (solução)
  10. Como as duplicatas são removidas de um array sem usar nenhuma biblioteca? (solução)
  11. Como é implementado um algoritmo de ordenação de radix? (solução)
  12. Como você troca dois números sem usar a terceira variável? (solução)
  13. Como você verifica se dois retângulos se sobrepõem um ao outro? (solução)
  14. Como você projeta uma máquina de venda automática? (solução)
  15. Como encontrar o número que falta em uma determinada matriz inteira de 1 a 100? (solução)
  16. Como encontrar o número duplicado em uma determinada matriz de números inteiros? (solução)
  17. Como você encontra números duplicados em um array se ele contém múltiplas duplicatas? (solução)
  18. Diferença entre um algoritmo de ordenação estável e instável? (resposta)
  19. Como um algoritmo de ordenação rápida iterativa é implementado? (solução)
  20. Como você encontra o maior e o menor número em um array inteiro não ordenado? (solução)
  21. Como se inverte uma lista ligada no lugar? (solução)
  22. Como adicionar um elemento no meio da lista vinculada? (solução)
  23. Como você ordena uma lista de links em Java? (solução)
  24. Como você encontra todos os pares de um array inteiro cuja soma é igual a um determinado número? (solução)
  25. Como você implementa um algoritmo de ordenação de inserção? (solução)
  26. Como as duplicatas são removidas de um dado array em Java? (solução)
  27. como remover o caractere duplicado de String? (solução)
  28. Como encontrar o caractere de máxima ocorrência em uma determinada String? (solução)
  29. Como é ordenado um array inteiro usando o algoritmo de quicksort? (solução)
  30. Como se inverte uma determinada string no lugar? (solução)
  31. Como se imprime caracteres duplicados de uma string? (solução)
  32. Como se verifica se duas cadeias de caracteres são anagramas uma da outra? (solução)
  33. Como se encontram todas as permutações de uma cadeia de caracteres? (solução)
  34. Como se pode inverter uma determinada cadeia de caracteres usando recursividade? (solução)
  35. Como verificar se uma determinada cadeia de caracteres é um palíndromo? (solução)
  36. Como você encontra o comprimento do substrato mais longo sem repetir os caracteres? (solução)
  37. Dada cadeia de caracteres, Como se encontra a maior substring palíndromo na cadeia de caracteres? (solução)
  38. Como você verifica se uma cadeia de caracteres contém apenas dígitos? (solução)
  39. Como remover o Nó no final de uma lista ligada? (solução)
  40. Como fundir duas listas de links ordenadas? (solução)
  41. Como converter uma lista ordenada para uma árvore de busca binária? (solução)
  42. Como encontrar caracteres duplicados em uma determinada cadeia de caracteres? (solução)
  43. Como se conta um número de vogais e consoantes em uma determinada cadeia de caracteres? (solução)
  44. Como se inverte palavras em uma determinada frase sem usar nenhum método de biblioteca? (solução)
  45. Como você verifica se duas cadeias de caracteres são uma rotação uma da outra? (solução)
  46. Como converter uma matriz de bytes para String? (solução)
  47. Como se remove um determinado caractere de String? (solução)
  48. Como você encontra o elemento central de uma lista ligada individualmente em uma passagem? (solução)
  49. Como se verifica se uma determinada lista ligada contém um ciclo? Como você encontra o nó inicial do ciclo? (solução)
  50. Como se inverte uma lista ligada? (solução)
  51. Como se inverte uma lista ligada individualmente sem recorrência? (solução)
  52. Como se remove nós duplicados em uma lista de links não ordenados? (solução)
  53. Como você encontra a extensão de uma lista ligada individualmente? (solução)
  54. Como você encontra o terceiro nó do final em uma lista unidirecional? (solução)
  55. Como você encontra a soma de duas listas vinculadas usando Stack? (solução)
  56. Qual é a diferença entre array e lista vinculada? (resposta)
  57. Como remover duplicatas de uma lista de links ordenada? (solução)
  58. Como encontrar o nó no qual começa a intersecção de duas listas vinculadas individualmente. (solução)
  59. Dada uma lista ligada e um valor x, particione-a de forma que todos os nós menos de x venham antes de nós maiores ou iguais a x. (solução)
  60. Como verificar se uma dada lista ligada é um palíndromo? (solução)
  61. Como remover todos os elementos de uma lista vinculada de inteiros que corresponda a um determinado valor? (solução)
  62. Como é implementada uma árvore de busca binária? (solução)
  63. Como executar a travessia de uma ordem prévia em uma determinada árvore binária? (solução)
  64. Como se faz para atravessar uma determinada árvore binária em uma determinada pré-ordem sem recorrência? (solução)
  65. Como se faz uma travessia de ordem em uma determinada árvore binária? (solução)
  66. Como imprimir todos os nós de uma determinada árvore binária usando a travessia de ordem sem recorrência? (solução)
  67. Como você implementa um algoritmo de travessia de ordem posterior? (solução)
  68. Como se atravessa uma árvore binária na travessia de uma ordem, sem recorrência? (solução)
  69. Como são impressas todas as folhas de uma árvore de busca binária? (solução)
  70. Como se conta um número de nós de folhas de uma determinada árvore binária? (solução)
  71. Como se faz uma pesquisa binária em uma determinada matriz? (solução)
  72. Como trocar dois números sem usar a terceira variável? (solução)
  73. Como verificar se dois rectângulos se sobrepõem um ao outro? (solução)
  74. Como projetar uma máquina de venda automática? (solução)
  75. Como implementar um Cache LRU na sua linguagem de programação favorita? (solução)
  76. Como verificar se um determinado número é um Palíndromo? (solução)
  77. Como verificar se um dado número é um número Armstrong? (solução)
  78. Como encontrar todos os factores principais de um dado número? (solução)
  79. Como verificar se um dado número é positivo ou negativo em Java? (solução)
  80. Como encontrar o maior fator principal de um dado número integral? (solução)
  81. Como imprimir todos os números primos até um determinado número? (solução)
  82. Como imprimir o triângulo de Floyd’s? (solução)
  83. Como imprimir o triângulo de Pascal? (solução)
  84. Como calcular a raiz quadrada de um determinado número? (solução)
  85. Como verificar se o número dado é um número primo? (solução)
  86. Como adicionar dois números sem usar o operador plus em Java? (solução)
  87. Como verificar se um determinado número é par/odd sem usar o operador Aritmético? (solução)
  88. Como imprimir uma dada estrutura Pyramid? (solução)
  89. Como encontrar o mundo de repetição mais alto de um determinado arquivo em Java? (solução)
  90. Como reverter um dado Inteiro em Java? (solução)
  91. Como converter um número decimal para binário em Java? (solução)
  92. Como verificar se um dado ano é um ano bissexto em Java? (solução)
  93. É possível implementar um Algoritmo de pesquisa binária sem recorrência? (solução)
  94. Diferença entre um algoritmo de ordenação estável e instável? (resposta)
  95. O que é o Algoritmo de Busca de Profundidade Primeira para uma árvore binária? (solução)
  96. Como um algoritmo de ordenação rápida iterativa é implementado? (solução)
  97. Como se implementa um algoritmo de ordenação de inserção? (solução)
  98. Como é implementado um algoritmo de ordenação de inserção? (solução)
  99. Qual é a diferença entre Algoritmos de Ordenação Comparativa e Algoritmos de Ordenação Não Comparativa? (resposta)
  100. Como implementar Algoritmos de Peneira de Eratóstenes para Número Primário? (solução)

Estas muitas perguntas devem ser suficientes, mas se você precisar de mais perguntas de codificação como Cracking The Code Interview, de Gayle Laakmann McDowell, que apresenta 189+ Perguntas e solução de programação. Um bom livro para se preparar para programar entrevistas de trabalho em pouco tempo.

Agora Você está Pronto para a Entrevista de Codificação

Estas são algumas das perguntas mais comuns fora da estrutura de dados e algoritmos que o ajudam a fazer realmente bem na sua entrevista.

Eu também tenho compartilhado muitas dessas perguntas no meu blog, então se você estiver realmente interessado, você pode sempre ir lá e procurá-las.

Estas perguntas comuns de codificação, estrutura de dados e algoritmo são as que você precisa saber para entrevistar com sucesso qualquer empresa, grande ou pequena, para qualquer nível de trabalho de programação.

Se você estiver procurando por um trabalho de programação ou desenvolvimento de software em 2019, você pode começar sua preparação com esta lista de perguntas de codificação e se você estiver pronto para a Entrevista, então você também pode fazer o quiz do TripleByte e ir diretamente para a rodada final de entrevistas com empresas de alta tecnologia como Coursera, Adobe, Dropbox, Grammarmarly, e muitas outras.

Esta lista fornece bons tópicos para preparar e também ajuda a avaliar sua preparação para descobrir suas áreas de força e fraqueza.

Bom conhecimento da estrutura de dados e algoritmos é importante para o sucesso na codificação de entrevistas e é aí que você deve focar a maior parte de sua atenção.

Outras aprendizagens
Estruturas de dados e algoritmos: Mergulho Profundo Usando Java
10 Livros para Preparar Programação Técnica/Codificação de Entrevistas de Trabalho
10 Livros de Algoritmo Todo Programador Deve Ler
Top 5 Estrutura de Dados e Livros de Algoritmo para Desenvolvedores Java
De 0 a 1: Estruturas de Dados & Algoritmos em Java
Estrutura de Dados e Análise de Algoritmos – Entrevista de Trabalho
20+ Problemas de codificação baseados em String de entrevistas
20+ Problemas de lista vinculada de entrevistas
20+ Problemas de algoritmos básicos de entrevistas

Closing Notes

Prazeres, Você conseguiu até o final do artigo … Boa sorte com sua entrevista de programação! Certamente não vai ser fácil, mas ao seguir esta busca e perguntas de algoritmo de classificação, você está um passo mais perto do que os outros. A propósito, quanto mais perguntas você resolver na prática, melhor será a sua preparação.

Então, se você acha que 100 problemas de codificação não são suficientes e você precisa de mais, então confira estas 50 perguntas adicionais de programação para entrevistas por telefone e estes livros e cursos para uma preparação mais completa.

Todos os melhores para a sua entrevista de codificação.

Outros Artigos que você pode gostar:

Deixe um comentário