Page 2 sur 7
Re: Entretien d'embauche téléphonique chez Google
Publié : mer. 28/mars/2018 22:42
par Ar-S
Ouai enfin l'énoncé est déjà vaseux...
Le A est contenu 2x et apparait en 1er mais le D se répète 2x en 1er...
Du coup mon code est ok si c'est le A qui prime.
Re: Entretien d'embauche téléphonique chez Google
Publié : mer. 28/mars/2018 22:57
par Torp
C'est tout le problème des énoncés. Faudrait être dans la tête de celui qui l'a fait pour savoir ce qu'il attends de toi.
Le double sens se cache partout... Mes cours de math s'en souvienne.
Pour ce cas précis je pense que la réponse attendu est effectivement D car elle n'apparait qu'en 2ème lecture...
Re: Entretien d'embauche téléphonique chez Google
Publié : mer. 28/mars/2018 22:57
par SPH
J'ai failli aussi me tromper mais l'intitulé un peu plus claire est : "quel duo de mêmes lettres apparaît en premier ?"
Re: Entretien d'embauche téléphonique chez Google
Publié : jeu. 29/mars/2018 8:20
par Ar-S
Les maths c'est la précision, si un énoncé est vaseux, il n'a rien à faire en math, qu'il aille en philo

@SPH : là c'est clair.
Re: Entretien d'embauche téléphonique chez Google
Publié : jeu. 29/mars/2018 15:49
par Fig
Mea culpa, en ce qui concerne l'énoncé et l'exemple.

Je propose de vous faire embaucher quand même, expliquez à Google que c'est de ma faute, touça...
L'énoncé original est là:
https://www.youtube.com/watch?v=GJdiM-muYqc
Re: Entretien d'embauche téléphonique chez Google
Publié : jeu. 29/mars/2018 16:00
par Ollivier
C'est de l'heuristique, c'est donc un peu normal que ce soit vaseux...
Re: Entretien d'embauche téléphonique chez Google
Publié : jeu. 29/mars/2018 17:06
par zaphod_b
désolé, j'arrive tard...
Code : Tout sélectionner
c$="POABCDEFTHLGDSALKL"
ol=Len(c$)
While c$
l$=Left(c$,1)
c$=RemoveString(c$,l$)
nl=Len(c$)
If ol-nl>1
Debug l$
Break
Else
ol=nl
EndIf
Wend
Re: Entretien d'embauche téléphonique chez Google
Publié : jeu. 29/mars/2018 18:20
par Torp
Fig a écrit :Mea culpa, en ce qui concerne l'énoncé et l'exemple.

Je propose de vous faire embaucher quand même, expliquez à Google que c'est de ma faute, touça...

Pas grave, si t'en a d'autres c'est volontiers, car c'est sympa de voir que chacun a une méthode différente. Celle de Guillot était bluffante.
Re: Entretien d'embauche téléphonique chez Google
Publié : jeu. 29/mars/2018 18:40
par Fig
Ok. Ce sont deux questions lors d'un entretien de visu avec tableau blanc...
Question 2:
On vous donne un tableau de N nombres (entiers positifs, nuls ou négatifs) triés dans l'ordre croissant.
Le but est de trouver quelle paire de nombres fait une somme définie.
Vous devez retourner la paire en question et si aucune n'existe l'indiquer.
Par exemple avec le tableau suivant pour une somme de 8,
[1,2,3,9]
resultat: La paire n'existe pas.
Par contre pour le tableau suivant:
[1,2,4,4]
resultat: La paire est 4,4
Il existe une solution en O(N).
Question 3:
Même question si la liste de chiffres n'est pas triée et positive. (là c'est un peu plus dur, c'est de la programmation dynamique pour une solution en O(N) )
Re: Entretiens d'embauche chez Google
Publié : jeu. 29/mars/2018 22:15
par Torp
Carrément ! Fallait pas s'énerver
Ma solution O(n²)...
Code : Tout sélectionner
Dim Tab.b(8)
For i = 0 To 7
Tab(i) = Random(9, 0)
Next
For i = 0 To 7
Debug Tab(i)
Next
Val.b = Random(18, 0)
Debug "valeur à trouver : " + Str(Val)
For i = 0 To ArraySize(Tab()) -1
For j = 0 To ArraySize(Tab()) -1
If i+j = val : Debug Str(i) + " + " + Str(j) + " = " + Str(Val) : End : EndIf
Next j
Next i
Debug "Pas de Somme"
Re: Entretiens d'embauche chez Google
Publié : ven. 30/mars/2018 1:46
par Ollivier
Même chose, force brute, à n termes
(dans #Potar)
Code : Tout sélectionner
#Max = 63
#Potar = 5 ; exemple avec 5 termes
Global x.I
Global Sum.I
Global Dim n(#Max)
Procedure Term(Depth.I, A.I, II.I)
For I = II + 1 To #Max - (#Potar - Depth)
B = A + n(I)
If Depth = #Potar - 1
Sum + Bool(B, x)
Else
Term(Depth + 1, B, I)
EndIf
Next
EndProcedure
Term(0, 0, -1)
Valeurs dans tableau n()
Somme à chercher dans x
Résultat dans Sum
Re: Entretiens d'embauche chez Google
Publié : ven. 30/mars/2018 9:15
par zaphod_b
Code : Tout sélectionner
;liste triée
Dim t(4) ;tableau
t(1)=1:t(2)=2:t(3)=3:t(4)=9
;t(1)=1:t(2)=2:t(3)=4:t(4)=4
s=8 ; somme
s2=s/2 ;demi somme
For i=1 To ArraySize(t())
If t(i)=s2 And t(i+1)=s2
Debug "trouvé :"+t(i)
f=1
Break
EndIf
If t(i)>s2
Break
EndIf
Next
;
If f<>1
Debug "pas de paire"
EndIf
;;;;
;liste non triée
For i=1 To ArraySize(t())
If t(i)=s2
f+1
If f=2
Debug "trouvé :"+t(i)
Break
EndIf
EndIf
Next
;
If f<>2
Debug "pas de paire"
EndIf
Re: Entretiens d'embauche chez Google
Publié : ven. 30/mars/2018 14:35
par MLD
Salut a tous
Dans le même genre que zaphod quela liste soit triée ou non
Code : Tout sélectionner
Dim x.F(8)
R.F = 17:I = 0
x(1) = 1:x(2) = 3: x(3) = 5:x(4) = 7:x(5) = 8: x(6) = 10:x(7) = -1:x(8)= 12
For z = 1 To ArraySize(x())
c.F = x(z)
For zz = 1 To ArraySize(x())
If c <> x(zz)
If c + x(zz) = R
i = x(zz):P.F = x(z)
EndIf
EndIf
Next
If i <> 0:Break:EndIf
Next
If i <> 0
Debug "Paire " + Str(P) + " : " + Str(i)
Else
Debug "pas de paire"
EndIf
Re: Entretiens d'embauche chez Google
Publié : ven. 30/mars/2018 15:13
par Fig
Ollivier, est ce que par hasard, ton expression Bool(expression) aurait une erreur de syntax (??)
MLD, Zaphod et Torpp, ça a l'air de fonctionner effectivement.
Par contre Zaphod, je ne suis pas sûr que ton prog fonctionne avec par exemple [1,2,3,4,5] et somme 8...
Bon, un indice concernant la solution en O(n) de la question 2... Imaginez qu'un index parte de la fin de la liste et un autre du début, simultanément...
Sinon, je vous donne une solution en O(n) si vous donnez votre langue au chat.
Re: Entretiens d'embauche chez Google
Publié : ven. 30/mars/2018 15:55
par Ollivier
Fig a écrit :Ollivier, est ce que par hasard, ton expression Bool
Ça m'apprendra à faire le malin avec le smartphone au milieu des boss...
Je pourrai jeter un oeil ce soir sur un ordi. Et puis mettre bien plus d'explications aussi.