求一系列已经排序字符串最大plateau的长度,尝试用递归的方法
问题描述:已知一个从小到大已经排序好的数组(全部都是数字),它的一个plateau就是连续的一串值相同的元素,并且这一串元素不再延伸。例如在 1,2,2,3,3,3,4,5,5,6 中 1, 2.2, 3.3.3, 4, 5.5, 6 都是平台。试着用递归方法,编写一个程序,接受这个数组(指针),把最长平台的长度找出来。例如,上面3.3.3是最长的平台,长度是3。
下面是我写的,谁还有别的算法啊,集思广益啊
程序代码:
#include<stdio.h> int Exercise1(char *string) { int n = 1; if ('\0' == *string) { return(0); } while (*(++string) == *(--string)) { n++; string++; } string++; return(n > Exercise1(string) ? n : Exercise1(string)); } void main() { char *string = "12233345566666"; fprintf(stdout, "字符串“%s”的最多平台的长度是%d。\n", string, Exercise1(string)); }