Bob is a theoretical coder - he doesn't write code, but comes up with theories, formulas and algorithm ideas. You are his secretary, and he has tasked you with writing the code for his newest project - a method for making the short form of a word. Write a function ```shortForm```(C# ```ShortForm```, Python ```short_form```) that takes a string and returns it converted into short form using the rule: Remove all vowels, except for those that are the first or last letter. Do not count 'y' as a vowel, and ignore case. Also note, the string given will not have any spaces; only one word, and only Roman letters. 

Example:
```
shortForm("assault");
short_form("assault")
ShortForm("assault");
// should return "asslt"
```

 
Also, FYI: I got all the words with no vowels from 
https://en.wikipedia.org/wiki/English_words_without_vowels

Difficulty: introductory

Starter code:

def short_form(s):
	

Solutions:
from re import *
def short_form(s):
    return sub(r"(?<!^)[aeiou](?=.)", '', s, flags=I)

import re

def short_form(s):
    regex = re.compile("(?!^)[aeiou](?!$)", re.I)
    return re.sub(regex, "", s)


def short_form(s):
    return s[0]+''.join(x for x in s[1:-1] if x not in 'aeiouAEIOU')+s[-1]

from re import sub
def short_form(s):
    return sub(r"(?!^)[aeiouAEIOU](?!$)", '', s)

from re import compile
from functools import partial

short_form = partial(compile(r"(?i)(?<!^)[aeiou](?!$)").sub, "")

def short_form(s):
    return ''.join(c for i,c in enumerate(s) if c.lower() not in 'aeiou' or (i==0 or i==len(s)-1))

def short_form(s):
    n = len(s)
    return ''.join(c for i, c in enumerate(s) if c not in 'aeiouAEIOU' or (i == 0 or i == n - 1))

import re
def short_form(s):
    return s[0] + re.sub(r'[aeiou]', '', s[1:-1], flags=re.I) + s[-1]