LeetCode第557题-翻转一个字符串里的单词
原题链接
输入一句话,然后把话里的单词,用空格分开的,翻转过来。例如:
- 输入:”This is a demo”
- 输出:”sihT si a omed”
挺简单,可以直接用String.split()
函数分成单词字符串数组以后,一个一个单词反过来,拼接成结果字符串就ok了。代码如下:
这个算法用了26ms完成所有用例。
有没有一次遍历完成的方法呢?其实可以,只需要遇到一个空格,就把前面那个单词翻转过来啊,就ok了。
实测这个算法,结果是10ms。快了很多,因为不需要split一个字符串了,一次遍历完成,也就快了许多。要是不用调换的方法,直接新建一条字符串来存放,有可能还会更快。
其实,我把单词翻转过来,就是从后往前输出字符,是不是后进先出呢?也就是用栈了。
但是真的很慢,76ms哦。不知道自己实现一个简单的栈会怎么样。
其实这道题挺简单,主要是为了说明,其实一道题有很多种解法,一步一步的优化,减少不必要的步骤,达到简单而高效,是我们的一直的追求啊。