Salut, Habrovsk. A la veille du début du cours Java QA Engineer, nous partageons avec vous la suite de ce matériel
.

Lors de mes premières interviews, je ne le savais pas. Mais les développeurs ne m'ont pas simplement regardé - ils s'y attendaient. Ils s'attendaient à ce que j'agisse selon l'algorithme suivant:
Affiner la tâche- Demandez: «Que voulez-vous dire par le mot palindrome?»
- Cela répond à la question: le candidat va-t-il commencer à résoudre le problème immédiatement - sans même se rendre compte que ses conditions techniques ne sont pas complètement claires? Ou réfléchissez un peu et clarifiez les exigences?
«Nous voulons dire une séquence qui se lit de la même façon de gauche à droite et de droite à gauche. Votre décision doit être sensible à la casse: le petit r n'est pas identique au grand r. "
Commencez avec des exemples- Demandez: «Les mots« revenu »et« cabane »sont donnés à titre d'exemples. Qu'en est-il des phrases comme "La rose est-elle tombée sur la patte d'Azora?" Qu'en est-il d'une chaîne vide ou d'une chaîne de caractères unique?
- Cela répond à la question: le candidat prendra-t-il en compte un nombre suffisant de cas limites? Quelle sera sa précision et son attention?

Avant de commencer la description du code, familiarisez brièvement l'intervieweur avec l'algorithme
Comment le candidat aborde-t-il la solution du problème? Exprime-t-il ses pensées à haute voix pour que l'intervieweur les entende?Par exemple,
string s = "alla"
.
Nous pouvons utiliser la méthode d'assistance pour la chaîne Java, charAt (int i). Entrez l'index de ligne dans la méthode, et il affichera le caractère à l'index:
s.charAt(0) == 'a' s.charAt(1) == 'l' s.charAt(2) == 'l' s.charAt(3) == 'a'
Pour connaître la longueur d'une chaîne, vous pouvez utiliser la méthode
length()
:
s.length == 4
Pour connaître le dernier caractère, vous pouvez utiliser:
int len = s.length s.charAt(len - 1)
Nous avons commencé le décompte à partir de 0, donc le dernier caractère sera «longueur moins 1».
Appelons le premier caractère «premier» et le dernier «dernier».
- Si le premier caractère s.charAt (premier) ne correspond pas à s.charAt (dernier), ce n'est pas un palindrome. Sortie fausse.
- Si le premier caractère de s.charAt (premier) correspond à s.charAt (dernier), nous procédons à l'évaluation du jeu de caractères suivant, en décalant un caractère de «premier» et de «dernier». Si tout correspond, imprimez vrai.
- Après avoir vérifié l'algorithme avec l'intervieweur, vous pouvez commencer à écrire du code:
public boolean isPalindrome(String s) { int first = 0; int last = s.length() - 1; while (first < last) { if (s.charAt(first) != s.charAt(last)) { return false; } first++; last--; } return true; }
Débogage et test
- Prenez les premiers cas de test et essayez d'imaginer: ce qui se passe si vous les insérez dans le code.
- Les enquêteurs vérifient votre attention lors du débogage. ( Avez-vous remarqué des erreurs dans le code natif sans demander de l'extérieur? ).
- Les enquêteurs vous donneront des indices si vous parvenez à leur faire bonne impression. ( Si nous donnons des indices au candidat, les utilisera-t-il? Est-il prêt à écouter les opinions des autres? Peut-il travailler avec des personnes occupant des postes supérieurs? ).
Montrez votre code à d'autres personnes et recueillez leurs commentaires
J'ai montré ma solution au problème du palindrome à mon ami développeur. Il grimaça: «Pourquoi avez-vous utilisé les variables en premier et en dernier? Et pourquoi avez-vous utilisé la boucle loop si vous pouvez vous en tirer avec la boucle for? Tout pourrait être raccourci, plus élégant et plus rapide:
public boolean isPalindrome(String s) { int len = s.length; for (int i = 0; i < len / 2; i++) { if ( s.charAt(i) != s.charAt(len - 1 - i)) { return false; } } return true; }
Et ensuite
La maîtrise du langage de programmation du jour au lendemain ne fonctionnera pas. Par conséquent, il est préférable de suivre cet algorithme:
- Trouvez des tâches de programmation de base en ligne.
- Essayez de les résoudre avec du papier et un stylo.
- Si vous ne pouvez pas les résoudre, consultez la documentation officielle du langage de programmation et voyez quelles méthodes intégrées peuvent vous aider.
- Formulez votre propre décision avant de chercher celle de quelqu'un d'autre. Si vous collectez vous-même des informations et que vous les étudiez, il est possible que ces informations s’installent définitivement dans votre tête.
- N'organisez pas de séances de bourrage. Il vous suffit donc de sauvegarder les informations dans la mémoire à court terme.
- Pratiquez de courtes courses, 15 minutes par jour. Ainsi, les informations se déplaceront dans une mémoire à long terme, et vous pouvez vous en souvenir même avec un stress extrême pendant l'entretien.
- Ne vous exposez pas à tous ces tourments juste pour passer le test au tableau. Visez plus haut! Fixez-vous la tâche de devenir un programmeur plus professionnel!