Python

O(n):

def non_dupe_char(some_word):
    table = dict()
    for c in some_word:
        table[c] = table.get(c, 0) + 1

    for (k,v) in table.items():
        if v == 1:
            return k

    return None

assert non_dupe_char('minime') == 'n'
assert not non_dupe_char('minime') == 'm'