对于本题有两种实现算法
(1)用数组保存等值子串的大小,并且采用大的值每次头插到数组中的形,这样做的好处是可以从大到小保存字符串的等值子串的所有个数,缺点是对于本题来说时间复杂度和空间复杂度较大
(2)用max每次只保存最大的等值字符串的大小,显然与上面的方法比节约了很多的时间复杂度、空间复杂度,但是只能用于本题
我的思想是:
举个例子:aabbb
用指针p从第一个字符开始往后遍历,定义变量count用来计算等值字符的个数,相同的count++,不同时保存这个count到数组或者max中,count再置为1
(1)对于本题我直接用定长的数组保存,假设字符长不大于10,当然用malloc当长度不够保存时自增长更好。我的
int MaxEqual(char *str,int *rtval)//注意由于子函数中的临时量不能传到主函数中去,所以用指针保存带出来