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... :mrgreen:

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... :mrgreen:
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 :mrgreen:

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. 8)
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.