Палиндром кодирования и логики - PullRequest
0 голосов
/ 25 марта 2020

При расследовании, является ли строка палиндромом, могу ли я просто взять реверс обратной строки? что не так с моим кодом?

def reverse(s):
    return s[::-1]

def isPalindrome(s):
    if (s == reverse(reverse(s))):
        return True
else:
    return False

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

reverse(reverse(s)) всегда равно s. Вы хотите проверить, равняется ли s reverse(s):

def is_palindrome(s):
    return s == reverse(s)
0 голосов
/ 25 марта 2020

Это зависит от того, что вы хотите сделать. Если вы просто хотите внедрить логи c, тогда ваша версия будет работать (но вам все равно придется исправлять свою ошибку там, это if (s == reverse(s)) и не изменять обратную версию); однако, если это задача, которая была дана вам в вашем интервью по кодированию, то вы на самом деле не делаете это правильно, из-за:

  1. Вы используете встроенный вызов API для обращения строки (и, следовательно, вы не реализуете isPalindrome);
  2. Временная сложность вашей версии будет намного хуже, чем сложность алгоритма isPalindrome как такового.
...