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"]
```

Source: codewars | Difficulty: EASY
Tags: String algorithms

Data structures

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]