Nível 4: Achei este nível o mais difícil de todos os cinco. Requeria a implementação de vários conceitos para resolver um único problema. Há um total de duas questões neste nível e é dado um tempo total de duas semanas para resolver cada questão.
Extensivo conhecimento de algoritmos e estruturas de dados é necessário neste nível.
A primeira questão foi baseada no conceito de teoria dos números e gráficos. Eu tive que implementar o algoritmo Bellman-Ford para resolver esta questão.
Levou-me muito tempo para compreender estes conceitos e implementá-los para resolver estas questões. Mas eu fui capaz de resolver as duas questões a tempo.
Após completar com sucesso o nível 4 você recebe outro link de referência para convidar mais um amigo para tentar este desafio!
Level 5: Este foi o segundo problema mais difícil de todo o desafio e foi baseado em um conceito puramente matemático. O nível final só tinha uma única pergunta e foram dados 22 dias para resolver esse problema!
O problema exigia a compreensão das permutações e combinações e implementação do teorema da enumeração Pólya e do lema de Burnside. Após a compreensão destes dois teoremas a parte de codificação foi bastante simples.
Com a submissão desta questão, o Desafio Google Foobar está completo!

>
>
Após terminar o desafio, recebi uma string criptografada que foi fácil de decifrar usando 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)
Este foi o código que usei para decifrar a mensagem. A mensagem decifrada foi:
{'success' : 'great', 'colleague' : 'esteemed', 'efforts' : 'incredible', 'achievement' : 'unlocked', 'rabbits' : 'safe', 'foo' : 'win!'}
O que acontecerá após completar o desafio?
Após a conclusão bem sucedida de todos os cinco níveis, é provável que você seja contatado pelo recrutador do Google para uma entrevista.
Você pode receber um e-mail ou um telefonema e se você decifrar a entrevista, então você pode ser contratado no Google.
Como conseguir o Desafio Foobar?
Felizmente, este desafio não está disponível para todos e o Google o envia apenas para desenvolvedores específicos (pode ser baseado em seu histórico de busca – palavras-chave técnicas).
Não se preocupe se você ainda não conseguiu este convite, esta não é a única maneira de conseguir um emprego no Google.
Não encontre o Foobar, deixe o Foobar encontrá-lo!

>
>>
Conclusão
Eu diria que esta é uma grande oportunidade para aprender e eu recomendaria que você resolvesse as perguntas se você receber um convite.
>
A resolução dos problemas não mantém o seu objectivo de ser contratado no Google, mas de aprender as novas técnicas e experimentar um dos melhores desafios de codificação.
Foobar é mais sobre aprender e implementar, em vez de saber tudo antes!
Se você tiver alguma dúvida ou comentário, por favor coloque-os na seção de comentários.
Para melhorar o seu código veja o nosso artigo aqui.
