python 3 回文判断,Python 3.2回文

I'm doing some python online tutorials, and I got stuck at an exercise:A palindrome is a word which is spelled the same forwards as backwards. For example, the word

racecar

is a palindrome: the first and last letters are the same (r), the second and second-last letters are the same (a), etc. Write a function isPalindrome(S) which takes a string S as input, and returns True if the string is a palindrome, and False otherwise.

These is the code I wrote :

def isPalindrome(S):

if S[0] == S[-1]

return print("True")

elif S[0] == S[-1] and S[1] == S[-2] :

return print("True")

else:

return print("False")

But, if the word is for example ,,sarcas,, , the output is incorect. So I need a fix to my code so it works for any word.

解决方案

A one line solution but O(n) and memory expensive is :

def isPalindrome(word) : return word == word[::-1]

A O(n/2) solution that uses the same amount of memory is:

def palindrome(word):

for i in range(len(word)//2):

if word[i] != word[-1-i]:

return False

return True

This is the trick @LennartRegebro mentioned

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值