DropCaps means that the first letter of the starting word of the paragraph should be in caps and the remaining lowercase, just like you see in the newspaper. 

But for a change, let's do that for each and every word of the given String. Your task is to capitalize every word that has length greater than 2, leaving smaller words as they are.

*should work also on Leading and Trailing Spaces and caps.

```python
drop_cap('apple') => "Apple"
drop_cap('apple of banana'); => "Apple of Banana"
drop_cap('one   space'); => "One   Space" 
drop_cap('   space WALK   '); => "   Space Walk   " 
```

**Note:** you will be provided atleast one word and should take string as input and return string as output.

Source: codewars | Difficulty: EASY
Tags: String algorithms

Fundamentals

Data structures

Starter code: def drop_cap(str_):
	

Solutions:
def drop_cap(str_):
	return ' '.join((w.capitalize() if len(w) > 2 else w for w in str_.split(' ')))


import re

def drop_cap(s):
	return re.sub('\\w{3,}', lambda m: m[0].title(), s)


def drop_cap(str_):
	return ' '.join([i[0].upper() + i[1:].lower() if len(i) > 2 else i for i in str_.split(' ')])


def drop_cap(s):
	return ' '.join((x.title() if len(x) > 2 else x for x in s.split(' ')))


import re

def r(m):
	s = m.group()
	if len(s) > 2:
		s = s.capitalize()
	return s

def drop_cap(s):
	return re.sub('\\w+', r, s)


def drop_cap(str_):
	return ' '.join(map(lambda x: x.title() if len(x) > 2 else x, str_.split(' ')))


import re

def drop_cap(s):
	return re.sub('\\S{3,}', lambda m: m.group(0).title(), s)