一、背景
今天中午一个朋友问我一个问题没来得及回,现在折腾一下;
问题:有一个包含以N个空格分割的字符串,求最大子串的长度,要求时间空间复杂度最优;
二、方案:
- 朋友给人方案:直接split分割遍历数组,找出最大值;
- 面试官的方案:使用StringTokenizer,找出最大值;
- 我想到的方案:indexOf计算index差值,找出最大值;
三、结果:
封装的代码比较复杂,目前来看不在么好分析时间复杂度和空间复杂度;
于是就直观得对比了一下时间;
1 | // output |
有时间再深入了解下StringTokenizer的源码
四、代码对比
1 | String oriStr = "aa aa aaaa aaa a a a aa aa a"; |