You will be given a string and you task is to check if it is possible to convert that string into a palindrome by removing a single character. If the string is already a palindrome, return `"OK"`. If it is not, and we can convert it to a palindrome by removing one character, then return `"remove one"`, otherwise return `"not possible"`. The order of the characters should not be changed.

For example:
```Haskell
solve("abba") = "OK". -- This is a palindrome
solve("abbaa") = "remove one". -- remove the 'a' at the extreme right. 
solve("abbaab") = "not possible". 
```

More examples in the test cases. 

Good luck!

If you like this Kata, please try [Single Character Palindromes II](https://www.codewars.com/kata/5a66ea69e6be38219f000110)

Source: codewars | Difficulty: EASY

Starter code: def solve(s):
	

Solutions:
def solve(s):
	isOK = lambda x: x == x[::-1]
	return 'OK' if isOK(s) else 'remove one' if any((isOK(s[:i] + s[i + 1:]) for i in range(len(s)))) else 'not possible'


def solve(s):
	if s == s[::-1]:
		return 'OK'
	for i in range(len(s)):
		if s[:i] + s[i + 1:] == (s[:i] + s[i + 1:])[::-1]:
			return 'remove one'
	return 'not possible'


def solve(s):
	r = s[::-1]
	i = next((i for (i, (c1, c2)) in enumerate(zip(s, r)) if c1 != c2), None)
	if i is None:
		return 'OK'
	j = len(s) - i
	if s[i + 1:] == r[i:j - 1] + r[j:] or s[i:j - 1] + s[j:] == r[i + 1:]:
		return 'remove one'
	else:
		return 'not possible'


(p, solve) = (lambda s: s == s[::-1], lambda s: p(s) and 'OK' or (any((p(s[:i] + s[i + 1:]) for i in range(len(s)))) and 'remove one') or 'not possible')


def get_pal(s):
	if len(s) == 1:
		return 0
	if len(s) == 2 and s[0] == s[1]:
		return 0
	elif len(s) == 2 and s[0] != s[1]:
		return 1
	return 1 + min(get_pal(s[1:]), get_pal(s[:-1])) if s[0] != s[-1] else get_pal(s[1:-1])

def solve(s):
	ans = get_pal(s)
	return 'OK' if ans == 0 else 'remove one' if ans == 1 else 'not possible'


def solve(stg):
	if is_pal(stg):
		return 'OK'
	if any((is_pal(f'{stg[:i]}{stg[i + 1:]}') for i in range(len(stg) + 1))):
		return 'remove one'
	return 'not possible'

def is_pal(stg):
	return stg == stg[::-1]


def solve(s):
	if s == s[::-1]:
		return 'OK'
	s = [letter for letter in s]
	k = [letter for letter in s]
	for char in range(len(s)):
		s.pop(char)
		s = ''.join(s)
		if s == s[::-1]:
			return 'remove one'
		s = [letter for letter in k]
	return 'not possible'