Хэш-карта, где ключ = символ и значение = частота будут работать лучше всего для любого вида символов и кодировок.
Если вам нужно только то, что может производить клавиатура, вы также можете использовать массив частот, где F [символьный код ASCII] = частота.
Оба решения имеют постоянное время O (1) для каждой операции.