Ever the learned traveller, Alan Partridge has pretty strong views on London:

```
"Go to London. I guarantee you'll either be mugged or not appreciated.
Catch the train to London, stopping at Rejection, Disappointment, Backstabbing Central and Shattered Dreams Parkway."
```
Your job is to check that the provided list of stations contains all of the stops Alan mentions. There will be other stations in the array.  Example:

```
['Rejection', 'Disappointment', 'Backstabbing Central', 'Shattered Dreams Parkway']
```

If the stations all appear, return 'Smell my cheese you mother!', if not,  return 'No, seriously, run. You will miss it.'.

Other katas in this series:
Alan Partridge I - Partridge Watch
Alan Partridge II - Apple Turnover

Source: codewars | Difficulty: EASY
Tags: String algorithms

Fundamentals

Data structures

Starter code: def alan(arr):
	

Solutions:
def alan(arr):
	s = {'Rejection', 'Disappointment', 'Backstabbing Central', 'Shattered Dreams Parkway'}
	return 'Smell my cheese you mother!' if s.issubset(arr) else 'No, seriously, run. You will miss it.'


def alan(arr):
	a = ['Rejection', 'Disappointment', 'Backstabbing Central', 'Shattered Dreams Parkway']
	for i in a:
		if i not in arr:
			return 'No, seriously, run. You will miss it.'
	return 'Smell my cheese you mother!'


def alan(arr):
	return 'Smell my cheese you mother!' if len(set(arr).intersection(['Rejection', 'Disappointment', 'Backstabbing Central', 'Shattered Dreams Parkway'])) == 4 else 'No, seriously, run. You will miss it.'


def alan(arr):
	a = ['Rejection', 'Disappointment', 'Backstabbing Central', 'Shattered Dreams Parkway']
	s = 0
	r = 0
	d = 0
	b = 0
	sd = 0
	for x in arr:
		for y in a:
			if x == y:
				s += 1
				if y == 'Rejection':
					r += 1
				elif y == 'Disappointment':
					d += 1
				elif y == 'Backstabbing Central':
					b += 1
				else:
					sd += 1
	if s >= 4 and r > 0 and (d > 0) and (b > 0) and (sd > 0):
		return 'Smell my cheese you mother!'
	else:
		return 'No, seriously, run. You will miss it.'


stops = {'Rejection', 'Disappointment', 'Backstabbing Central', 'Shattered Dreams Parkway'}

def alan(lst):
	return 'No, seriously, run. You will miss it.' if stops - set(lst) else 'Smell my cheese you mother!'


alan = lambda l: 'Smell my cheese you mother!' if 'Rejection' in l and 'Disappointment' in l and ('Backstabbing Central' in l) and ('Shattered Dreams Parkway' in l) else 'No, seriously, run. You will miss it.'


alan = lambda a, s={'Shattered Dreams Parkway', 'Backstabbing Central', 'Disappointment', 'Rejection', 'Norwich', 'London'}: ('No, seriously, run. You will miss it.', 'Smell my cheese you mother!')[set(a) & s == s]


def alan(arr):
	stops = ['Rejection', 'Disappointment', 'Backstabbing Central', 'Shattered Dreams Parkway']
	counter = 0
	for i in stops:
		if i in arr:
			counter += 1
	if counter == len(stops):
		return 'Smell my cheese you mother!'
	return 'No, seriously, run. You will miss it.'