Level 4: Ik vond dit level het moeilijkste van de vijf. Het vereiste de implementatie van verschillende concepten om een enkel probleem op te lossen. Er zijn in totaal twee vragen op dit niveau en er is in totaal twee weken tijd om elke vraag op te lossen.
Extensieve kennis van algoritmen en gegevensstructuren is vereist op dit niveau.
De eerste vraag was gebaseerd op het concept van getaltheorie en grafieken. Ik moest het Bellman-Ford-algoritme implementeren om deze vraag op te lossen.
Het kostte me veel tijd om deze concepten te begrijpen en ze te implementeren om deze vragen op te lossen. Maar ik heb beide vragen op tijd kunnen oplossen.
Na het succesvol afronden van niveau 4 krijg je nog een doorverwijslink waarmee je nog een vriend kunt uitnodigen om deze uitdaging te proberen.
Level 5: Dit was het op een na moeilijkste probleem van de hele uitdaging en was gebaseerd op een puur wiskundig concept. Het laatste niveau had maar één vraag en er waren tweeëntwintig dagen om dat probleem op te lossen!
Het probleem vereiste begrip van permutaties en combinaties en toepassing van het Pólya opsommingstheorema en Burnside’s lemma. Na het begrijpen van deze twee stellingen was het coderen vrij eenvoudig.
Met het indienen van deze vraag is de Google Foobar Challenge voltooid!
Nadat ik de uitdaging had voltooid, kreeg ik een gecodeerde string die gemakkelijk te ontcijferen was met base64
.
import base64encrypted="THE ENCRYPTED MESSAGE"my_eyes=str.encode("MY USER NAME")decoded=base64.b64decode(encrypted)decrypted=""for i in range(0,len(decoded)):decrypted+=chr((my_eyes ^ decoded))print(decrypted)
Dit was de code die ik gebruikte om het bericht te ontcijferen. Het ontcijferde bericht was:
{'success' : 'great', 'colleague' : 'esteemed', 'efforts' : 'incredible', 'achievement' : 'unlocked', 'rabbits' : 'safe', 'foo' : 'win!'}
Wat gebeurt er na het voltooien van de uitdaging?
Na het succesvol voltooien van alle vijf niveaus is de kans groot dat de recruiter van Google contact met je opneemt voor een gesprek.
Je kunt een e-mail of een telefoontje krijgen en als je het gesprek hebt gewonnen, kun je worden aangenomen bij Google.
Hoe krijg je de Foobar Challenge?
Gelukkig genoeg is deze uitdaging niet voor iedereen beschikbaar en stuurt Google deze alleen naar specifieke ontwikkelaars (dit kan gebaseerd zijn op hun zoekgeschiedenis – technische trefwoorden).
Maak je geen zorgen als je deze uitnodiging nog niet hebt gekregen, dit is niet de enige manier om een baan bij Google te krijgen.
Vind Foobar niet, laat Foobar jou vinden!
Conclusie
Ik zou zeggen dat dit een geweldige kans is om te leren en ik zou je aanraden om de vragen op te lossen als je een uitnodiging krijgt.
Houd bij het oplossen van de problemen niet je doel voor ogen om aangenomen te worden bij Google, maar om nieuwe technieken te leren en een van de beste coderingsuitdagingen te ervaren.
Foobar gaat meer over leren en implementeren, in plaats van alles van tevoren te weten!
Als je vragen of opmerkingen hebt, plaats ze dan in de commentaarsectie.
Om uw code te verbeteren, raadpleegt u ons artikel hier.