import collections


def char_distribution(string: str) -> collections.Counter:
    """Given an ascii string, return the distribution of its characters
    as a percentage of the total string length.

    :param string: the string to be analyzed
    :returns: the characters distribution of the string
    """
    assert string

    string = string.lower()
    c = collections.Counter(string)

    return c