The goal of this exercise is to convert a string to a new string where each character in the new string is `"("` if that character appears only once in the original string, or `")"` if that character appears more than once in the original string. Ignore capitalization when determining if a character is a duplicate.

## Examples
```
"din"      =>  "((("
"recede"   =>  "()()()"
"Success"  =>  ")())())"
"(( @"     =>  "))((" 
```

**Notes**

Assertion messages may be unclear about what they display in some languages. If you read `"...It Should encode XXX"`, the `"XXX"` is the expected result, not the input!

Source: codewars | Difficulty: EASY
Tags: String algorithms

Fundamentals

Data structures

Starter code: def duplicate_encode(word):
	

Solutions:
def duplicate_encode(word):
	return ''.join(['(' if word.lower().count(c) == 1 else ')' for c in word.lower()])


from collections import Counter

def duplicate_encode(word):
	word = word.lower()
	counter = Counter(word)
	return ''.join(('(' if counter[c] == 1 else ')' for c in word))


import collections

def duplicate_encode(word):
	new_string = ''
	word = word.lower()
	d = collections.defaultdict(int)
	for c in word:
		d[c] += 1
	for c in word:
		new_string = new_string + ('(' if d[c] == 1 else ')')
	return new_string


def duplicate_encode(word):
	word = word.upper()
	result = ''
	for char in word:
		if word.count(char) > 1:
			result += ')'
		else:
			result += '('
	return result


def duplicate_encode(word):
	new_string = ''
	word = word.lower()
	for char in word:
		new_string += ')' if word.count(char) > 1 else '('
	return new_string


def duplicate_encode(word):
	word = word.lower()
	dict = {}
	for char in word:
		dict[char] = ')' if char in dict else '('
	return ''.join((dict[char] for char in word))