回文的词特点是正序和倒序拼写相同给,比如noon以及redivider。用递归的思路来看,回文词的收尾相同,中间部分是回文词。
下面的函数是把字符串作为实际参数,然后返回函数的头部、尾部以及中间字母:
def first(word):
return word[0]
def last(word):
return word[-1]
def middle(word):
return word[1:-1]
- 把这些函数输入到一个名字叫做palindrome.py的文件中,测试一下输出。如果中间你使用一个只有两个字符的字符串会怎么样?一个字符的怎么样?空字符串,比如『』没有任何字母的,怎么样?
- .写一个名叫is_palindrome的函数,使用字符串作为实际参数,根据字符串是否为回文词来返回真假。可以用内置的len函数来检查字符串的长度。
1、空字符串时 字符串下标越界 报错
2、代码如下
# -- coding: utf-8 --
'''不支持中文注释时加编码说明'''
def first(word):
return word[0]
def last(word):
return word[-1]
def middle(word):
return word[1:-1]
def is_right(word): #注意基准条件 先判断长度否则字符串下标会越界
if len(word) < 2:
return True
if first(word) != last(word):
return False
return is_right(middle(word))
if __name__ == '__main__': #import时不执行 脚本运行时执行
word = 'nn'
if (len(word) ==(0 or 1)) or is_right(word):
print(word + '是回文串')
else:
print(word + '不是回文串')
注:
def isPalindrome(s):
return s == s[::-1]
s[::-1] 字符串翻转