using System;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
Console.WriteLine(Compress("aaaabbbcccddasdfasdf"));
Console.WriteLine(Compress("aaabbccdddeezbbb"));
}
public static string Compress(string str)
{
return Regex.Matches(str, @"(.)\1{0,}")
.Cast<Match>()
.Select(x =>
"" + x.Value[0] +
((x.Length == 1) ? String.Empty : x.Length.ToString()))
.Aggregate((a, b) => a + b);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCUNvbnNvbGUuV3JpdGVMaW5lKENvbXByZXNzKCJhYWFhYmJiY2NjZGRhc2RmYXNkZiIpKTsKCQlDb25zb2xlLldyaXRlTGluZShDb21wcmVzcygiYWFhYmJjY2RkZGVlemJiYiIpKTsKCX0KCQogICAgcHVibGljIHN0YXRpYyBzdHJpbmcgQ29tcHJlc3Moc3RyaW5nIHN0cikKICAgIHsKICAgICAgICByZXR1cm4gUmVnZXguTWF0Y2hlcyhzdHIsIEAiKC4pXDF7MCx9IikKICAgICAgICAgICAgICAgICAgICAuQ2FzdDxNYXRjaD4oKQogICAgICAgICAgICAgICAgICAgIC5TZWxlY3QoeCA9PgogICAgICAgICAgICAgICAgICAgICAgICAiIiArIHguVmFsdWVbMF0gKwogICAgICAgICAgICAgICAgICAgICAgICAoKHguTGVuZ3RoID09IDEpID8gU3RyaW5nLkVtcHR5IDogeC5MZW5ndGguVG9TdHJpbmcoKSkpCiAgICAgICAgICAgICAgICAgICAgLkFnZ3JlZ2F0ZSgoYSwgYikgPT4gYSArIGIpOwogICAgfQp9