Условие задачи: Дана строка, необходимо написать функцию, которая проверит является ли строка палиндромом или нет. Палиндром – это число, слово или фраза, одинаково читающиеся в обоих направления.
Например слово ‘radar’ ‘радар’.
Метод 1:
Найдем обратную строку с помощью метода reverse, затем сравним обратную строку с исходной
# возвращает обратную строку def reverse(s): return s[::-1] def is_palindrome(s): rev = reverse(s) # проверка на совпадение 2х строк if (s == rev): return True return False # запуск кода s = "malayalam" ans = is_palindrome(s) >>>True
Метод 2: Итеративный метод. Начать цикл с length/2 и проверять первый и последний элемент, второй и предпоследний и т.д. Если хоть что-то не совпадает, следовательно это не полиндром.
def isPalindrome(str): # Run loop from 0 to len/2 for i in xrange(0, len(str)/2): if str[i] != str[len(str)-i-1]: return False return True s = "malayalam" ans = isPalindrome(s) >>> True
Метод 3: Использование встроеной функции для реверса строки.
Просто посмотрите код.
def isPalindrome(s): # Используем встроенную функцию rev = ''.join(reversed(s)) # Проверяем строки на равенство if (s == rev): return True return False s = "malayalam" ans = isPalindrome(s) True
3 способа в вашу копилку питониста.
Если вы нашли ошибку в коде, пишите в комментариях.