4772Fermer4774
BrunniLe 16/08/2022 à 17:13
Haha.
Justement aujourd'hui j'avais un test préliminaire pour un entretien, c'est un truc sur Hackerrank, vous savez ces problèmes d'algorithmique, qui ne servent à rien dans la vraie programmation, mais pour vérifier que t'es un freshman manipulable à souhait. Et comme je postule pour une position web, ils me l'ont bloqué à Javascript.
Ouaip… j'ai un peu d'exp en algo, je me suis dit que j'allais me débrouiller.
Mais 3 problèmes à faire en 60 minutes. Avec une donnée volontairement super compliquée pour que tu ne retrouves pas le problème (relativement simple) équivalent.
Et là où j'ai un peu haï mon sort c'est que j'ai perdu presque 15 minutes sur le problème le plus simple une fois que j'avais écrit la solution optimisée au max, parce que ça pétait sur des datasets plus grands et le débogage était difficile vu que leurs tests sont faits côté serveur (tu peux juste faire des console.log).
Il se trouve qu'en javascript il y a une fonction .sort() pour trier les tableaux. Sauf que… ça les trie par ordre alphabétique, même si c'est des nombres (sans pour autant modifier le type).
Résultat:
[1, 5, 10, 7, 200].sort()
Ça donne, comme on pourrait s'y attendre :
[1, 10, 200, 5, 7]
J'ai eu le même souci plus tard avec les clés dans les tableaux, sauf que cette fois il fait la conversion en string :
var objet = {};
objet[1] = 123;
if (1 in objet) // false
if ('1' in objet) // true
Donc pour l'utiliser comme hashmap ou comme set, tu fais if (leNombre.toString() in tonSet).