50 votes

Questions d'entretiens chez Algorithm / Data Structure Design

Ce sont quelques-algorithme simple ou des données relatives à la structure des "blancs d'embarquement" des problèmes que vous trouvez efficace lors de la présélection des candidats processus?

J'ai quelques simples que j'utilise pour valider les compétences en résolution de problèmes et qui peuvent être simplement exprimé, mais ont la possibilité de l'application de certaines heuristiques.

L'un des principes de base que j'utilise pour les développeurs juniors est:

Écrire une méthode C# qui prend une chaîne de caractères qui contient un ensemble de mots (une phrase) et tourne ces mots X nombre de places vers la droite. Quand un mot dans la dernière position de la phrase est tournée, elle doit démontrer à l'avant de la chaîne résultante.

Quand un candidat répond à cette question, je regarde pour voir s'ils sont disponibles .NET des structures de données et méthodes (chaîne de caractères.Rejoindre, de la chaîne.Split, Liste, etc...) pour résoudre le problème. Je regarde aussi pour eux d'identifier les cas particuliers à des fins d'optimisation. Comme le nombre de fois que les mots ont besoin d'être tourné n'est pas vraiment X c'est X % du nombre de mots.

Quels sont certains des blancs problèmes liés à la carte que vous utilisez pour interviewer un candidat et quelles sont certaines des choses que vous cherchez dans une réponse (ne pas besoin de poster la réponse exacte).

25voto

David Citron Points 9231

J'aime le classique "quelle est la différence entre une LinkedList et une liste de tableaux (ou entre une liste et un tableau/vecteur) et pourquoi voudriez-vous choisir l'un ou l'autre?"

Le genre de réponse que j'espère est celui qui comprend la discussion:

  • l'insertion de la performance
  • itération de la performance
  • la mémoire allocation/réallocation de l'impact
  • impact de la suppression d'éléments à partir du début/milieu/fin
  • comment savoir (ou ne pas savoir) la taille maximale de la liste peuvent influer sur la décision

25voto

Jim Puls Points 29289

Une fois, alors que j’interviewais pour Microsoft au collège, le gars m’a demandé comment détecter un cycle dans une liste chaînée.

Ayant discuté en classe la semaine précédente de la solution optimale au problème, j'ai commencé à lui dire.

Il m'a dit: "Non, non, tout le monde me donne cette solution. Donnez-moi une solution différente."

J'ai soutenu que ma solution était optimale. Il a dit: "Je sais que c'est optimal. Donnez-moi un sous-optimal."

En même temps, c'est un très bon problème.

16voto

Bill the Lizard Points 147311

Lors des entretiens récents, on me demandait souvent de mettre en place une structure de données, généralement LinkedList ou HashMap. Les deux sont assez faciles à réaliser en peu de temps et assez difficiles pour éliminer ceux qui sont sans intelligence.

9voto

DevelopingChris Points 12510
  1. Écrire une méthode qui prend une chaîne de caractères et renvoie true si la chaîne est un nombre.(n'importe quoi avec les regex comme la réponse la plus adaptée pour une entrevue)
  2. Écrivez un résumé de l'usine de méthode, qui ne contient pas de commutateur et retourne types avec le type de base de "X". (La recherche des motifs, à la recherche à la réflexion, à la recherche de leur pas de pas de côté et utiliser un if else if)
  3. Veuillez diviser la chaîne "chaque;une chose|;|else|;|dans|;|il;re" par le jeton "|;|".(multi jetons de caractère ne sont pas autorisés à moins de .net, alors à la recherche de la créativité, la meilleure solution est un total de hack)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X