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() .Select(x => "" + x.Value[0] + ((x.Length == 1) ? String.Empty : x.Length.ToString())) .Aggregate((a, b) => a + b); } }