Il semble que des tests de codage soient menés à l'étranger lors d'entretiens d'ingénieurs, et dans de nombreux cas, l'essentiel est d'implémenter des fonctions et des classes spécifiques en fonction du thème.
Apparemment, de nombreux ingénieurs prennent des mesures sur le site appelé LetCode.
C'est un site qui forme la puissance algorithmique qui peut résister au test de codage effectué au début de l'histoire, et c'est une voie inévitable pour ceux qui veulent faire carrière dans une entreprise de technologie à l'étranger.
Je l'ai écrit en grand, mais je n'ai pas l'intention d'avoir une telle interview pour le moment.
Cependant, en tant qu'ingénieur informatique, il serait préférable d'avoir le même niveau de puissance d'algorithme qu'un être humain, donc j'aimerais résoudre le problème de manière irrégulière et écrire la méthode que je pensais à l'époque sous forme de mémo.
Je le résolve avec Python3.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Day70 à partir de zéro "295. Find Median from Data Stream"
À l'heure actuelle, je donne la priorité au moyen des 100 questions les plus appréciées. Easy a été résolu, donc si vous êtes intéressé, veuillez vous rendre à la table.
Twitter Je le fais.
** Blog technique Commencé! !! ** ** Je pense que la technologie écrira sur LetCode, Django, Nuxt, etc. ** C'est plus rapide à mettre à jour **, merci pour votre coopération!
Le niveau de difficulté est facile. Il s'agit du problème Easy le plus récemment ajouté.
Le problème est que, étant donné un chemin d'une chaîne comme chemin [i] = 'N', 'S', 'E', 'W', chacun représente une unité de mouvement. En partant de l'origine (0, 0) sur le plan bidimensionnel, il marche sur le chemin spécifié par chemin. Renvoie True si les chemins se croisent à tout moment, c'est-à-dire si vous vous trouvez dans un endroit que vous avez déjà visité. Sinon, il renvoie False.
Je ne peux pas donner d'exemple à cause de l'image, veuillez donc le vérifier par vous-même.
J'ai pris la méthode de gestion des coordonnées avec x et y et de gestion des premières coordonnées avec dict. Hmm. Je ne pense pas que ce soit très intelligent, mais cela change le chemin avec une instruction for et change les coordonnées si cela correspond à chaque chaîne. Cependant, même avec cela, la vitesse elle-même est élevée, probablement parce que le nombre de réponses est petit ... Je ne peux rien dire, mais pour le moment, ça y est.
class Solution:
def isPathCrossing(self, path: str) -> bool:
x = y = 0
isVisited = {(0,0):True}
for i in path:
if i == 'N':
y += 1
elif i == 'E':
x += 1
elif i == 'S':
y -= 1
else:
x -= 1
if isVisited.get((x,y)):
return True
isVisited[(x,y)] = True
return False
# Runtime: 24 ms, faster than 96.92% of Python3 online submissions for Path Crossing.
# Memory Usage: 14 MB, less than 100.00% of Python3 online submissions for Path Crossing.
Vaut-il mieux écrire en Java ou une instruction switch ...? Cette fois, je l'ai posté pour en discuter en tant que nouveau numéro. Simple Python Solution
Je suis nerveux, mais si vous faites cela, vous pouvez obtenir des conseils de personnes plus intelligentes!
Alors c'est tout pour cette fois. Je vous remercie pour votre travail acharné.
Recommended Posts