2018-10-17 《吴军谷歌方法论117封信》Google面试题

问题从谷歌的一道面试题开始:

给你一个英语的语句,比如"London bridge is falling down",把它完全倒装过来,"down falling is bridge London",如何不使用额外的存储空间完成这个倒装过程?

第一步,先将整个句子看成是一个完整的字符串,以字母为单位头尾对调,这样上面的句子就变成了下面这样一个乱七八糟的字符串:

“nwod gnillaf si egdirb nodnoL”

上面这一串字,你可能根本看不懂,但是没有关系。接下来我们再完成第二步,你就看清楚了。

第二步,把用空格分割的每一个字串以字母为单位,头尾对调。比如第一个字串是nwod,头尾对调后是down,也就是原来句子中的最后一个单词。第二个字串是gnillaf,字母头尾对调后是falling,原来句子中倒数第二个单词。这样一个个地做,直到最后一个字串里的字母对调完毕。这样就得到了下面的倒装句子:

“down falling is bridge London.”

这个问题有两个反思:

1. 递归可以简化问题;

2. 有时候要打破常规思维,为了达到目的,可能中间会有看似无意义的事情,但只要信息没有丢失,看似无意义的事情还可以还原回有意义的事情。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容