利用递归函数实现检查一个字符串是否为回文数
Posted 文仙草
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用递归函数实现检查一个字符串是否为回文数相关的知识,希望对你有一定的参考价值。
练习题目:
创建一个函数,用于检查任意一个字符串是否为回文字符串,如果是则返回True,如果不是则返回False
- 回文字符串:字符串从前往后念与从后往前念一样
- 例如:abc不是回文字符串,abba是回文字符串,abcba是回文字符串。
# 【普通写法】
def find_palindromic(word: str) -> bool:
'''
This function check if any given word is palindromic. If yes, return True; else return False
'''
# 字符串只剩一位或没有字符的时候,问题不能再拆分,由于之前均没有报false, 说明这个word是回文
if len(word) < 2:
return True
# 如果第一位字符与最后一位字符不相等,则返回false
if word[0] == word[-1]:
return False
# 如果字符串有超过1位字符,且第一位与最后一位字符相等,则进行递归
else:
return find_palindromic(word[1:-1]) #取第一位到倒数第二位之间的字符
# 调用函数
find_palindromic('abcddba')
#【最后两步简化写法】
def find_palindromic(word: str) -> bool:
'''
This function check if any given word is palindromic. If yes, return True; else return False
'''
if len(word) < 2:
return True
# 如果第一个表达式为false, 则不执行and后面的语句;如果第一个表达式为true, 则执行and后面的语句,进行递归
return word[0]==word[-1] and find_palindromic(word[1:-1])
# 调用函数
find_palindromic('abcddba')
以上是关于利用递归函数实现检查一个字符串是否为回文数的主要内容,如果未能解决你的问题,请参考以下文章
C语言:编写一个测试一个串是不是为回文的递归函数,是回文,返回1;不是,返回0。