In this Kata, you will be given a string and your task will be to return a list of ints detailing the count of uppercase letters, lowercase, numbers and special characters, as follows.

```Haskell
Solve("*'&ABCDabcde12345") = [4,5,5,3]. 
--the order is: uppercase letters, lowercase, numbers and special characters.
```

More examples in the test cases. 

Good luck!

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def solve(s):
	

Solutions:
def solve(s):
	(uc, lc, num, sp) = (0, 0, 0, 0)
	for ch in s:
		if ch.isupper():
			uc += 1
		elif ch.islower():
			lc += 1
		elif ch.isdigit():
			num += 1
		else:
			sp += 1
	return [uc, lc, num, sp]


import re

def solve(s):
	return [len(re.findall(i, s)) for i in ('[A-Z]', '[a-z]', '\\d', '[^a-zA-Z0-9]')]


def solve(s):
	res = [0, 0, 0, 0]
	for c in s:
		i = 0 if c.isupper() else 1 if c.islower() else 2 if c.isdigit() else 3
		res[i] += 1
	return res


from string import ascii_lowercase, ascii_uppercase, digits, punctuation

def solve(s):
	return [len([q for q in s if q in ascii_uppercase]), len([q for q in s if q in ascii_lowercase]), len([q for q in s if q in digits]), len([q for q in s if q in punctuation])]


def solve(s):
	lst = [0, 0, 0, 0]
	for char in s:
		if char.isupper():
			lst[0] += 1
		elif char.islower():
			lst[1] += 1
		elif char.isdigit():
			lst[2] += 1
		else:
			lst[3] += 1
	return lst


def solve(s):
	(upper, lower, digit, other) = (0, 0, 0, 0)
	for c in s:
		if c.isupper():
			upper += 1
		elif c.islower():
			lower += 1
		elif c.isdigit():
			digit += 1
		else:
			other += 1
	return [upper, lower, digit, other]


def solve(s):
	fs = [str.isupper, str.islower, str.isdigit]
	res = [0, 0, 0, 0]
	for c in s:
		res[next((i for (i, f) in enumerate(fs) if f(c)), -1)] += 1
	return res


def solve(s):
	r = [0] * 4
	for e in s:
		r[0 if e.isupper() else 1 if e.islower() else 2 if e.isdigit() else 3] += 1
	return r


def solve(s):
	others = [sum((x.isupper() for x in s)), sum((x.islower() for x in s)), sum((x.isnumeric() for x in s))]
	return others + [len(s) - sum(others)]


import re

def solve(s):
	uppercase = len(re.findall('[A-Z]', s))
	lowercase = len(re.findall('[a-z]', s))
	numbers = len(re.findall('[0-9]', s))
	special = len(re.findall('[^A-Za-z0-9]', s))
	return [uppercase, lowercase, numbers, special]