# Description:

 Find the longest successive exclamation marks and question marks combination in the string. A successive exclamation marks and question marks combination must contains two part: a substring of "!" and a substring "?", they are adjacent. 
 
 If more than one result are found, return the one which at left side; If no such a combination found, return `""`.

# Examples

```
find("!!") === ""
find("!??") === "!??"
find("!?!!") === "?!!"
find("!!???!????") === "!!???"
find("!!???!?????") === "!?????"
find("!????!!!?") === "????!!!" 
find("!?!!??!!!?") === "??!!!"
```

# Note
Please don't post issue about difficulty or duplicate. Because:
>[That's unfair on the kata creator. This is a valid kata and introduces new people to javascript some regex or loops, depending on how they tackle this problem.  --matt c](https://www.codewars.com/kata/remove-exclamation-marks/discuss#57fabb625c9910c73000024e)

Difficulty: introductory

Starter code:

def find(s):
	

Solutions:
import re

def find(stg):
    matches = re.findall(r"(!+|\?+)", stg)
    return max((f"{a}{b}" for a, b in zip(matches, matches[1:])), key=len, default="")

from itertools import groupby

def find(s):
    L = [k*len(list(v)) for k,v in groupby(s)]
    return max((x + y for x,y in zip(L, L[1:])), key=len, default="")

import re

def find(s):
    matches = [s for s, _ in re.findall(r'((.)\2*)', s)]
    return max((a+b for a,b in zip(matches, matches[1:])), key=len, default='')

import re
def find(s):
    h1 = re.findall(r"!+\?+", s)
    h2 = re.findall(r"\?+!+", s)
    return max(h1 + h2, key = lambda x:( len(x) ,-s.find(x) ), default='')

import re;find=lambda s:max(re.findall(r"!+\?+",s)+re.findall(r"\?+!+",s),key=lambda x:(len(x),-s.find(x)),default='')

def find(s):
    if s == '' or '!' not in s or '?' not in s:
        return ''
    s += ' '
    counts = []
    curr = s[0]
    count = 0
    for i in s:
        if i == curr:
            count += 1
        else:
            counts.append(count)
            count = 1
            curr = i
    n = []
    for i in range(len(counts)-1):
        n.append(counts[i]+counts[i+1])
    x = n.index(max(n))
    
    a = sum(counts[:x])
    return s[a:a+counts[x]+counts[x+1]]

import re
def find(s):
    return max(re.findall(r"\!+\?+", s)+re.findall(r"\?+\!+", s), key=(lambda x:(len(x), -s.index(x))), default="")

import re
def find(s):
    x=[]
    for g in re.finditer(r"\?+!+",s):
        x.append((len(g[0]),-g.start(),g[0]))
    for g in re.finditer(r"!+\?+",s):
        x.append((len(g[0]),-g.start(),g[0]))
    return max(x)[-1] if x else ""

from itertools import *

def find(s):
    r = ''
    for i in range(len(s)):
        for j in range(i,len(s)+1):
            g = [k for k,g in groupby(s[i:j])]
            if len(g) == 2:
                if j-i > len(r):
                    r = s[i:j]
    return r

from itertools import groupby
def find(s):
    a,b='',0
    m=0
    r=''
    for c,g in groupby(s):
        n=len(list(g))
        if b+n>m and b:
            r=a*b+c*n
            m=b+n
        a,b=c,n
    return r