In this kata, we want to discover a small property of numbers. 
We say that a number is a **dd** number if it contains d occurences of a digit d, (d is in [1,9]).

## Examples

* 664444309 is a **dd** number, as it contains 4 occurences of the number 4
* 30313, 122 are **dd** numbers as they respectively contain 3 occurences of the number 3, and (1 occurence of the number 1 AND 2 occurences of the number 2)
* 123109, 0, 56542 are not **dd** numbers

## Task 

Your task is to implement a function called `is_dd` (`isDd` in javascript) that takes a **positive** number (type depends on the language) and returns a boolean corresponding to whether the number is a **dd** number or not.

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def is_dd(n):
	

Solutions:
from collections import Counter

def is_dd(n):
	return any((value == count for (value, count) in Counter((int(x) for x in str(n))).items()))


from collections import Counter

def is_dd(n):
	return any((int(k) == v for (k, v) in Counter(str(n)).items()))


def is_dd(n):
	for i in range(1, 10):
		if str(n).count(str(i)) == i:
			return True
	return False


def is_dd(n):
	lstr = list(str(n))
	dds = 0
	for x in lstr:
		numdigits = 0
		for y in lstr:
			if y == x:
				numdigits += 1
		if numdigits == int(x):
			return True
	return False


def is_dd(n):
	for i in set([int(d) for d in str(n)]):
		if str(n).count(str(i)) == i:
			return True
	return False


def is_dd(n):
	n = str(n)
	return any((n.count(d) == int(d) for d in set(n)))


import collections

def is_dd(n):
	counter = collections.Counter(str(n))
	return any((counter[str(i)] == i for i in range(1, 10)))


is_dd = lambda n: any((int(c) == x for (c, x) in __import__('collections').Counter(str(n)).items()))