思路:
1、关键的核心点是相同的子串是算多次的,比如abcabc中出现了两次abc,这个要计算两次的。
2、上面是一个关键的条件,那么可以使用滑动窗口法,每个字符串右边的字符从0~len -1;同时左边的字符串也不断的增加,但是有一个条件,就是tmp[i] >=1。注意这里left没有必要从0遍历到right,没有任何的意义。
3、类似的求子串的数量的问题,一定不要尝试将所有的子串全部存储到一个数组里面去挨个遍历,那样的话,时间复杂度会超过O(n^3),对于空间的要求也非常的高。这类问题需要注意思考。
int numberOfSubstrings(char * s){
if (s == NULL) {