/*
一串连续字符被称作围栏当且仅当它由间隔的‘|’和‘-’组成。
比如“|-|-|-|”或“-|-|”(引号仅供说明)。
注意“|-||-|”或者“--”不是围栏,因为每个都包含了两个或两个以上的相同连续字符。
给你一个字符串,请找出它的最长的一个可以称作围栏的子串长度。
Sample Input
|||-||--|--|---|-||-|-|-|--||---||-||-||-|--||
3 2 3 3 4 8 2 2 2 3 3 4 2
Sample Output
8
*/
#include <stdio.h>
int main()
{
char a[100];
int i=1,j=0,k=0,b;
gets(a);
puts(a);
for(;a[j]!='\0';j++)
{
if(a[j]==a[j+1]||a[j+1]=='\0')
{
if(k<i)k=i,b=j+1;//获取最大值和最大值地址(实际地址)
i=1;//复位计数器
}
else i++;
}
printf("发现围栏最长的长度为:%d,地址为:%d ~ %d ",k,b-k+1,b);
puts("");
return 0;
}
|||-||--|--|---|-||-|-|-|--||---||-||-||-|--||
|||-||--|--|---|-||-|-|-|--||---||-||-||-|--||
发现围栏最长的长度为:8,地址为:19 ~ 26
Press any key to continue ...