Задача: Первый и последний индекс

Напишите функцию, которая принимает слово и символ и возвращает индексы первого и последнего вхождения этого символа в слове.

Пример:

char_index("hello", "l") ➞ [2, 3]
# Первая "l" имеет индекс 2, последняя "l" - индекс 3.

char_index("circumlocution", "c") ➞ [0, 8]
# Первая "c" имеет индекс 0, последняя "c" - индекс 8.

char_index("happy", "h") ➞ [0, 0]
# В слове есть только одна буква "h", поэтому и первый, и последний индекс равны 0.

char_index("happy", "e") ➞ None
# Символа "e" в "happy" нет, поэтому мы возвращаем None.

Примечания:

  • Если символа в слове нет, возвращается None
  • Если в слове указанный символ встречается только один раз, индексы первого и последнего вхождения будут одинаковыми.

Варианты решений:

def char_index(word, char):
	return None if char not in word else [word.index(char), word.rindex(char)]
def char_index(w, c):
	if c in w: return [w.find(c), w.rfind(c)]
def char_index(word, char):
	try:
		res = [word.index(char), word.rindex(char)]
	except:
		res = None
	return res
char_index = lambda w, c: c in w and [w.find(c), len(w) - w[::-1].find(c) - 1] or None

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *