La source: https://ressources.workable.com/
Nous nous sommes tous préparés à un entretien de codage à un moment de notre vie. Si vous lisez cet article aujourd'hui, surtout donner une interview bientôt. Bonne chance! Que la force soit avec toi!
Qu'est-ce qu'un test de codage? Si vous faites un test de codage pour la première fois, laissez-moi vous dire à quoi vous attendre. Le test de codage se compose généralement de questions algorithmiques qui testent vos compétences en structures de données et en optimisation de code.
Les questions posées dans ce segment peuvent ne pas être directement associées à votre travail.. En réalité, vous n'écrirez presque certainement jamais de codes pour vérifier si un nombre est premier, un code pour trouver le palindrome ou un code pour trouver la plus longue sous-chaîne commune de 1000 chaînes de course. Le but de ce test est de mesurer votre démarche de réflexion et votre niveau de programmation.
Rappelez-vous une chose avant de commencer tout test de codage. Cette suggestion est valable dans les cas où votre interlocuteur est présent lors du passage du test ou a les coordonnées de votre interlocuteur.
Dans le cas malheureux où vous aviez un algorithme en tête mais ne pouviez pas écrire le programme, explique ta démarche de pensée (algorithme) à votre interlocuteur. Ce n'est pas une situation en noir et blanc. Réfléchir à voix haute ou exprimer vos idées à l'intervieweur pourrait lui permettre de mieux comprendre vos compétences..
Comment se préparer au test de codage?
De nombreux programmeurs expérimentés suggèrent que la pratique de nombreux problèmes aidera à développer l'intuition et vous fournira des outils pour résoudre de nouveaux problèmes.. De nombreux sites Web comme HackerRank et LeetCode vous permettent de pratiquer votre code et de comprendre à quel point votre solution est optimisée..
Vous savez maintenant à quoi vous attendre à cette étape du processus d'embauche et connaissez certains sites pour vous aider tout au long du processus.. Malgré cela, Comment ces problèmes sont-ils résolus? Je vais vous expliquer le train d'étapes à suivre qui m'a personnellement aidé.
Il est impossible de se préparer à un entretien de codage et de ne pas tester cet énoncé du problème.
« Étant donné un nombre entier x, Revenir true et x est un entier palindrome.«
J'ai rencontré ce problème en m'entraînant pour l'un de mes entretiens de codage avec LeetCode. ici. Je vais utiliser ce problème pour expliquer les étapes.
Comment je voulais m'amuser en codant, J'ai décidé d'expérimenter avec des listes. Je ne sais pas si ce code a déjà été écrit, malgré cela, c'était mon effort personnel.
Après avoir regardé quelques vidéos et compris l'approche adoptée par certains codeurs pour résoudre ces problèmes algorithmiques, J'ai consolidé les étapes suivantes pour résoudre ce problème. Les étapes mentionnées ci-dessous peuvent être utilisées pour tout problème algorithmique. Le problème du palindrome n'est utilisé qu'à titre d'exemple pour montrer les étapes à suivre pour résoudre tout problème de codage.
1. Est-ce que je comprends la question – Qu'est-ce qu'un palindrome?
Selon Merriam-Webster, un palindrome est établi comme suit:
un mot, verset ou phrase (Quoi « Je pourrais être là avant de voir l'île d'Elbe ») ou un nombre (Quoi 1881) qui lit la même chose vers l'arrière ou vers l'avant
On ne considère que des nombres entiers dans ce problème.
Exemples: 12321, 22, 56877865
2. Quelles sont les limitations à considérer avant de commencer à écrire le code?
Les restrictions ici se réfèrent aux hypothèses que nous faisons avant d'écrire le code. Nous ne vérifierons pas si ces conditions sont remplies. Les arguments passés à la fonction sont supposés remplir les conditions suivantes. Les restrictions varient en fonction des déclarations de problème. J'ai réduit les limitations suivantes pour me concentrer sur le sujet principal de la discussion: utiliser une liste dans ce problème.
je. Seuls les nombres entiers sont passés en arguments.
ii. Les entiers négatifs ne sont pas considérés comme des palindromes.
3. Méthode de la force brute
L'approche de la force brute est établie chez Merriam-Webster comme-
faire confiance ou obtenir par l'application de la force, effort ou puissance en quantités généralement importantes plutôt que des méthodes plus efficaces, soigneusement planifié ou ciblé avec précision
L'approche de la force brute est généralement la première approche qui vient à l'esprit lorsqu'on s'attaque à un problème de programmation..
Ici, l'approche que j'ai envisagée était d'inverser le nombre entier et de le comparer au nombre entier d'origine.
#Approche de la force brute
def isPalindrome(X):
#Assurez-vous d'abord que le résultat est False lorsque l'entier est négatif
si x<0:
retourner Faux
#Initialisation de la chaîne inversée pour 0
rev = 0
#Attribuer x à l'original car nous allons modifier x dans les étapes ci-dessous
original = x
#Cette boucle while est utilisée pour obtenir l'inverse d'un entier.
tandis que x>0:
# x%10 (rappel lorsque x est divisé par 10) donnera le dernier chiffre de x
rev = rev*10 + x%10
#Remove the last digit from x to use if for the next step of the while loop
x = int(x/10)
#Vérifiez si l'entier inversé est égal à l'entier d'origine
si entier(tour) == d'origine:
retourner vrai
autre:
retourner Faux
Le code peut être expliqué comme suit:
je. Si le nombre entier est négatif, renvoie faux.
II. Initialiser un entier (tour) une 0. est variableEn statistique et en mathématiques, ongle "variable" est un symbole qui représente une valeur qui peut changer ou varier. Il existe différents types de variables, et qualitatif, qui décrivent des caractéristiques non numériques, et quantitatif, représentation de grandeurs numériques. Les variables sont fondamentales dans les expériences et les études, puisqu’ils permettent l’analyse des relations et des modèles entre différents éléments, faciliter la compréhension de phénomènes complexes.... se utilizará para guardar el reverso del entero que se va a chequear.
III. Commencer une boucle while. Dans la boucle while, on obtient l'inverse de l'entier d'origine
IV. Vérifiez si la liste créée aux étapes II et III est la même. Le cas échéant, le nombre est un palindrome.
Ce code est de complexité temporelle OU (log n).
4. Le plaisir commence ici
La quatrième étape est l'optimisation. Malgré cela, J'ai décidé d'utiliser des listes pour la même chose et de vérifier leur résultat.
Mon code était le suivant:
#Solution utilisant des listes
def isPalindrome(X):
#Assurez-vous d'abord que le résultat est False lorsque l'entier est négatif
si x<0:
retourner Faux
#Convertir l'entier en liste : 123 devient [1, 2, 3]
lst_int = [entier(sur une) pour num dans str(X)]
#Inverser la liste : [1,2,3] devient [3,2,1]
reverse_lst = lst_int[::-1]
#Vérifiez si la liste inversée est la même que la liste d'origine
si lst_int == reverse_lst:
retourner vrai
autre:
retourner Faux
Le code peut être expliqué comme suit:
je. Si le nombre entier est négatif, renvoie faux
II. Convertir l'entier x en liste: 123 devient [1,2,3]
III. Inverser la liste: [1,2,3] devient [3,2,1]
IV. Vérifiez si la liste créée aux étapes II et III est la même. Le cas échéant, le nombre est un palindrome.
Il pourrait sembler que nous aurions pu utiliser directement la fonction de chaîne sur l'entier et inverser la chaîne au lieu d'utiliser la liste. Malgré cela, si vous voyez la question dans LeetCode, dé: ne pas stocker l'entier sous forme de chaîne. D'où la réponse.
Chaque ligne de ce code est de complexité OU (m). Ajouter plusieurs déclarations de complexité OU (m) n'augmente pas la complexité de l'algorithme. Pour cela, c'est la réponse OU (m).
Clairement, cette solution est pire que la méthode de force brute qui a une complexité de O (log n). Cette étape est la plus difficile pour une raison. Parce que nous devons réfléchir sérieusement pour nous assurer de ne pas rendre les choses pires qu'elles ne le sont déjà.. La quatrième étape est une étape itérative qui est répétée jusqu'à ce qu'une certaine amélioration soit observée dans la complexité temporelle ou spatiale du code..
Visite ici pour regarder les discussions de vos collègues programmeurs et vous inspirer pour tirer le meilleur parti du code ci-dessus
conclusion
Ce n'est pas la réponse optimisée que vous devriez essayer lors de votre prochain entretien.. C'est juste un tremplin pour te dire comment penser. Je suis un apprenant comme vous et j'apprends quelque chose de nouveau chaque jour. En même temps, Je ne veux pas attendre de devenir un expert pour partager ce que j'apprends.
Je vous invite à essayer toutes les idées qui vous viennent à l'esprit. Peut-être avez-vous la prochaine bonne idée !!
Bon codage!
Les médias présentés dans cet article ne sont pas la propriété de DataPeaker et sont utilisés à la discrétion de l'auteur.
En rapport
Articles Similaires:
- Codage catégoriel | Un encodage à chaud versus un encodage de tag
- Tests d'hypothèses | Tests d'hypothèses pour les débutants en science des données
- Mettre: moyen d'interférence utilisateur graphique pour apprendre l'apprentissage automatique
- 15 Fonctions que vous devez connaître pour maîtriser les listes en Python



