using System.Collections.Generic;
public static void Main()
PrintCharsAndFrequencies("aaabbbbcccdddd");
public static string PrintCharsAndFrequencies(string s)
Dictionary<char, int> charFrequency = new Dictionary<char, int>();
char[] chars = s.ToCharArray();
foreach (char c in chars)
if (!charFrequency.ContainsKey(c))
charFrequency[c] = charFrequency[c] + 1;
var results = new List<string>();
foreach (KeyValuePair<char, int> kvp in charFrequency.OrderBy(x => x.Key))
results.Add(string.Format("{0}{1}", kvp.Key, kvp.Value));
string formatedResults = String.Join(" ", results);
Console.Write(formatedResults);