public static void Main()
var result1 = OcurrenciasConsecutivas("aaabbdde");
var result2 = OcurrenciasConsecutivas("abab");
var result3 = OcurrenciasConsecutivas("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
var result4 = OcurrenciasConsecutivas("iwwwwwwwawwwwwwwwww");
var result5 = OcurrenciasConsecutivas("wwwwwwwwwwwwwwwwwi");
Console.WriteLine(result1);
Console.WriteLine(result2);
Console.WriteLine(result3);
Console.WriteLine(result4);
Console.WriteLine(result5);
private static string OcurrenciasConsecutivas(string cadena)
var groups = cadena.GroupBy(i => i);
return $"{cadena[0]}{groups.FirstOrDefault().Count()}";
for(int i = 0; i < cadena.Count(); i++)
bool lastLoop = i+1 == cadena.Count();
char currentLetter = cadena[i];
char nextLetter = lastLoop ? '.' : cadena[i+1];
if(lastLoop || currentLetter != nextLetter)
newCadena += $"{currentLetter}{counter}";