Comment puis-je améliorer mes compétences en résolution de problèmes à postuler pour un stage de génie logiciel l’été prochain?

Regardant les défis sur LeetCode, ils varient en difficulté.  Clone un graphe est un algorithme simple traversal.  Inverse que les bits d’un entier devraient être faciles avec bit violon ou encore une méthode de force brute d’extraction et de remontage.  Voici les étapes générales problèmes :

1. vous devez d’abord comprendre le problème.  Il s’agit plus de la moitié de la bataille.  Le problème de lecture n’est pas suffisant.  Vous devez comprendre ce qui pose problème.  Par exemple, les États de l’un des problèmes, « une chaîne donnée, trouver la longueur de la sous-chaîne plus longue sans répéter les caractères. Par exemple, la sous-chaîne plus longue sans répéter les lettres pour « abcabcbb » est « abc », dont la longueur est de 3. Pour "benameur" la sous-chaîne plus longue est "b", avec la longueur de 1. »
Comment comprenez-vous ce que demande ce problème?  Dans ce cas, le problème donne deux exemples qui le rendent facile à comprendre.  Trouver la sous-chaîne plus longue qui n’a pas de caractères répétés.  Vous savez vraiment que vous le comprenez si vous pouvez créer votre propre exemple de ce qu’il cherche - par exemple, si la chaîne est « bbbabbbb » la réponse serait « ab » d’une longueur de 2 (ou « ba » d’une longueur de 2).

2. une fois que vous le comprenez, par exemple, vous formulez ensuite un plan pour atteindre l’objectif.  Dans l’exemple de notre chaîne, commencez avec l’idée simple que vous avez.  Une façon de faire est de commencer avec le but et travailler vers l’arrière.  Avec l’exemple de notre chaîne, nous savons donc, que l’objectif est une sous-chaîne (partie de la chaîne).  Donc, je dois tirer une ficelle sur la première chaîne et de déclarer qu’il est de la sous-chaîne.  Donc dans mon exemple « bbbabbb » - la sous-chaîne de la première et la plus évidente est la première lettre « b ».  Puis-je retourner que comme une réponse? Non, parce que bien qu’il soit comme sous-chaîne, je ne sais pas si c’est la sous-chaîne plus longue.  Une manière de tester est donc, c’est de continuer vers le bas de la chaîne avec les lettres suivante et si la lettre suivante n’est pas déjà dans la sous-chaîne, nous ajouter à la sous-chaîne et ont une sous-chaîne de candidat nouveau !  Donc, commencer à cela fonctionné sur le papier... comme ceci :
sous-chaîne à l’index 0: « b »
la lettre suivante à l’index 1 (à partir de 0): « b »
Est la lettre suivante en sous-chaîne?  OUI
ainsi, la sous-chaîne candidat est encore « b » avec une longueur de 1
Maintenant, continuez - essayer de faire un meilleur candidat-
Dès à présent à l’index 1 pour notre nouveau candidat :
sous-chaîne à l’index 1: « b »
la lettre suivante à l’index 2: « b »
Est la lettre suivante en sous-chaîne?  OUI
ainsi, la sous-chaîne candidat est encore « b » avec une longueur de 1
sous-chaîne à l’index 2: « b »
la lettre suivante à l’index 3: « a »
Est la lettre suivante en sous-chaîne? NON, alors l’ajouter
ainsi, la sous-chaîne de candidat est désormais « ba » d’une longueur de 2
la lettre suivante à index 4: « b »
Est la lettre suivante en sous-chaîne? OUI
ainsi, candidat sous-chaîne est toujours « ba » d’une longueur de 2...

Vous pouvez voir comment ce modèle va et comment elle va continuer... maintenant, vous avez une solution potentielle.  Certaines personnes appellent cela une méthode de force brute, mais ne vous inquiétez pas que.  Le point le plus important est que vous avez travaillé une solution sur le papier.

3. traduire votre approche dans le code source informatique et testez-la avec des exemples « représentatifs » - au moins 3.

C’est l’approche de base.  Il est important tout d’abord simple teste et procéder aux plus difficiles.  Meilleurs voeux!


Tags: Génie logiciel, Compétences, Stages, Stages d’été, Self-Improvement