转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/21043665
今天下午阿里电面的题目,给定一个字符串,输出其所有连续子串,如:给定字符串为abcd,则要输出的其全部连续子串为:a,b,c,d,ab,bc,cd,abc,bcd,abcd。
很快给出了最简单的方法,就是先从第一个字符遍历,向后输出,再从第二个字符开始遍历,向后输出,依此类推,直到开始遍历的字符为数组的最后一个字符。这个时间复杂度很高啊,要O(n*n*n)。
接下来就假设字符串很大,想优化的方法,不知道脑子是短路了还是咋地,居然联想到Trie树上去了,完全不沾边的东西。电面后想了下,感觉应该用递归,吃完饭,去图书馆用纸画了下,就是递归(还是A题A的少啊!)。后来写出来代码感觉貌似木有提高时间复杂度哦!
阿里电面:输出字符串全部连续子串

本文记录了一道阿里实习面试题,要求输出给定字符串的所有连续子串。最初的遍历方法时间复杂度为O(n^3),之后尝试使用递归优化,但并未显著降低复杂度。讨论中提出了直接打印子串的方法,虽简化了代码,但时间复杂度仍为O(n^3),似乎没有更好的优化空间。
最低0.47元/天 解锁文章
502

被折叠的 条评论
为什么被折叠?



