Google Foobar挑战:第3级

Google Foobar挑战:第3级

探索二进制数、动态规划和马尔可夫链

由Rajeshwar Bachu在Unsplash上发布的照片

什么是Foobar挑战?🧐

Foobar挑战是由Google主办的可以使用Python或Java完成的编程挑战。我使用Python完成了这个挑战。该挑战有自己的服务器和特定的终端命令。这些问题按照5个级别的难度进行组织。每个问题必须在一定的时间限制内解决。对于高级别问题,会给予更多时间。

要了解更多关于Foobar挑战的信息,我推荐阅读我的之前的文章,其中提供了对Level 1问题的概述和详细分解。

Google Foobar挑战:Level 1

对于这个神秘的编程挑战的介绍和问题的分解

towardsdatascience.com

Level 3 是真正开始变得严肃的阶段。Level 1和Level 2测试了基础知识,并只需要大约15分钟完成。Level 3测试了解决问题的能力,并需要数小时的研究。与之前的级别不同,我不知道如何立即解决这些问题。我不得不多次阅读问题,并在纸上列出测试用例。此外,我还需要进行一些新概念的研究和实践。

研究并不意味着只是在谷歌上搜索问题名称,并查看其他人的解决方案。相反,我尝试重新表述问题或搜索似乎奇特具体的短语,以找到相关的方程式和模型。

起初,我有些犹豫。Google会跟踪我的搜索历史吗?他们会认为这是作弊吗?然而,当我在这个级别上取得进展时,我意识到这些问题很可能旨在强迫你查看外部资料。我非常怀疑Google希望开发人员记住马尔可夫链的公式。

当你解决这些问题时,我鼓励你研究不熟悉的概念,特别是如果你的解决方案变得冗长和无结构。这些问题被设计为具有优雅的解决方案。如果你无法想出解决问题的优雅方法,那就是存在一种可能能简化问题的公式或方法的线索。记住,部分…