判断回文串(python实现)

回文的词特点是正序和倒序拼写相同给,比如noon以及redivider。用递归的思路来看,回文词的收尾相同,中间部分是回文词。

下面的函数是把字符串作为实际参数,然后返回函数的头部、尾部以及中间字母:

def first(word):
    return word[0]
def last(word):
    return word[-1]
def middle(word):
    return word[1:-1]
  1. 把这些函数输入到一个名字叫做palindrome.py的文件中,测试一下输出。如果中间你使用一个只有两个字符的字符串会怎么样?一个字符的怎么样?空字符串,比如『』没有任何字母的,怎么样?
  2. .写一个名叫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]     字符串翻转

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值