Complete the function that takes a string as an input, and return a list of all the unpaired characters (i.e. they show up an odd number of times in the string), in the order they were encountered as an array. 

In case of multiple appearances to choose from, take the last occurence of the unpaired character.

**Notes:**
* A wide range of characters is used, and some of them may not render properly in your browser.
* Your solution should be linear in terms of string length to pass the last test.


## Examples

```
"Hello World"   -->  ["H", "e", " ", "W", "r", "l", "d"]
"Codewars"      -->  ["C", "o", "d", "e", "w", "a", "r", "s"]
"woowee"        -->  []
"wwoooowweeee"  -->  []
"racecar"       -->  ["e"]
"Mamma"         -->  ["M"]
"Mama"          -->  ["M", "m"]
```

Difficulty: introductory

Starter code:

def odd_one_out(s):
	

Solutions:
from collections import Counter

def odd_one_out(s):
    d = Counter(reversed(s))
    return [x for x in d if d[x] % 2][::-1]

def odd_one_out(s):
    d = {}
    for i in s:
        if i in d:
            del d[i]
        else:
            d[i] = None
    return list(d.keys())

from collections import Counter

def odd_one_out(s):
    return [k for k, v in Counter(s[::-1]).items() if v % 2][::-1]

from collections import Counter

def odd_one_out(stg):
    return [c for c, n in list(Counter(stg[::-1]).items()) if n % 2][::-1]


def odd_one_out(s):
    memo = {}
    for c in s:
        if c in memo:
            del memo[c]
        else:
            memo[c] = None
    return list(memo.keys())

from collections import Counter
def odd_one_out(s):
    return sorted((x for x, i in list(Counter(s).items())if i%2), key=s.rfind)


def odd_one_out(s):
    k = {}
    out = []
    
    for x in s:
        k[x] = k.get(x, 0) + 1
    
    odd_list = [x for x in s if k[x]%2==1]

    for x in odd_list:
        if k[x] == 1:
            out.append(x)
        else:
            k[x] = k.get(x)-1
    
    return out

odd_one_out=lambda s:[c for c,n in __import__('collections').Counter(s[::-1]).items()if n&1][::-1]

from collections import Counter, OrderedDict
def odd_one_out(s):
    return list(reversed([item[0] for item in OrderedDict(Counter(s[::-1])).items() if int(item[1])%2==1]))

def odd_one_out(s):
    from collections import Counter
    c = Counter(s)
    ans = []
    for i in s[::-1]:
        try:
            if c[i] % 2 == 1:
                ans.append(i)
                del c[i]
        except:
            pass
                
    return ans[::-1]