例如:i am sad 变成 sad am i
这个题目在我面试的时候,一位面试官问过我。当时让我在纸上写代码,写半天我没写出来,我还是比较弱的。
不过一直让我纠结的是,面试官说我这方法一般:
- 我给出的思路是:扫描一遍所有的字母,边扫描边切分单词压栈,最后再从栈里弹出。
- 而面试官说这是很常见的一道面试题:两次翻转(首先将句子全部翻转,再扫描一次将每个单词翻转)
这个问题时不时就会在我脑子里出现。我总觉得我的这个做法应该不错啊。我的想法是这个应用在实际场景中时,用来处理文章,当文档单词在一定数量级以上的时候,两次翻转的时间上应该会比我压栈这样差很多吧。
想着可能是自己脑子不太灵光,有什么点没想到的,来sf问问各位大大~~望不吝赐教
我觉得你的方法挺好的了, 就是多费了内存. 多考虑一点的话, 比如单词之间不一定是一个空格, 也许是多个, 这样你的方法就不适用了.
这确实是一个很老的面试题了.