static void Main(string[] args)
{
string mete = "aaaassdsfdgfezdxcrgrefsdfdsgdfdfdfsagdfbhdfbtfffgrrssdsdasfcccdghhh";
int s=0;
for (int i = 0, l = mete.Length; i < l; i=s)
{
s= i;
int num = RecursionMaxRepate(mete, mete[i], ref s);
if (num>1)
{
Console.WriteLine("{0}:{1}", mete[i], num);
}
}
Console.ReadKey();
}
static int RecursionMaxRepate(string m, char c, ref int s)
{
int sum = 0;
if (c == m[s] && (s)<m.Length)
{
s += 1;
if (s >= m.Length)
{
return sum+1;
}
sum += RecursionMaxRepate(m, c, ref s) + 1;
}
else if(c!=m[s])
{
return sum;
}
return sum;
}
static void FetchRepate(string s)
{
for (int i = 0, l = s.Length; i < l; i++)
{
char c = s[i];
int r = 0;
int ii = i + 1;
for (; ii < l; ii++)
{
if (c == s[ii])
{
r++;
}
else
{
break;
}
}
if (r > 0)
{
Console.WriteLine("{0}:{1}", c, r+1);
i = ii-1;
}
}
}