谷歌SWE intern 电面,可能的挂经

网上不太能搜到这道题,为数不多的信息似乎说明这是一道onsite的题,不知道为什么放在电面里。
题目是帮customer找合适的apartment所在的街区
说你有一个city只有一个street,上面有很多block,用list表示。list的每一项是一个dictionary,代表了这个block有什么东西,比如

[

{“School”: True,“Library”: True},

{“Grocery”: True},

{“Museum”: True,“Library”: True}

{“School”: True}

]

每一个block都可以住人。

然后你有一个customer,用dictionary表示他想要的功能,例如

{“School”: True, “Grocery”:True}

请你设计一个函数找到block的index,使得所有customer的要求都能满足,并且离他最远的那个他要求功能住宅距离最近,距离已blockindex之差表示。

例如上面的例子返回0,因为第0个block自己有school,距离为0,第1个block有grocery,距离为1。而如果选第3个block的话,school满足的距离还是0,但grocery距离为2,就不满足最短的最远距离。

这道题被问蒙了,只写了brute force的解法和一个简单的利用预处理避免一定程度重复check的优化,感觉挂了。

这题不应该考了 已经ban了