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.

Difficulty: introductory

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):
    n = str(n)
    for i in range(1, 10):
        if n.count(str(i)) == i:
            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())