用递归方法判断字符串是否是回文(Recursion Palindrome Python)
所谓回文字符串,就是一个字符串从左到右读和从右到左读是完全一样的。比如:"level" 、“aaabbaaa”、 "madam"、"radar"。
如何判断字符串是否是回文呢?解决思路如下:
1. 采取穷举法(Brute Force algorithm),枚举并检查(enumerate & check)字串符的第一项和最后一项是否等同
2. 把检查范围逐步缩小,如果字串符的第一项和最后一项等同,那么去除字串符的第一项和最后一项,检查新的字符串,以此类推
代码如下:
def isPalindrome(s):if len(s) < 2: #如果字符串只有0个或1个字符,那么该字符串符合回文的定义return Trueif s[0]!=s[-1]: #如果字符串不止一个字符,那么检查字串符的第一项和最后一项是否等同return Falsereturn isPalindrome(s[1:-1]) #字串符的第一项和最后一项等同,所以去除字符串的第一项和最后一项,继续进行检查 str=input("请输入一个字符串: ") if isPalindrome(str):print(str+"是一个回文字符串") else:print(str+"不是一个回文字符串")
运行结果如下:
请输入一个字符串: madam
madam是一个回文字符串
如果用迭代(Iteration)方法,也可以解出此题,但是要复杂很多。所以,到底是用递归法还是迭代法需要仔细斟酌。
参考:麻省理工学院公开课:计算机科学及编程导论 (第4课)
附:最简单的解法
def isPalindrome(s): return s == s[::-1]
转载于:https://www.cnblogs.com/HuZihu/p/7595768.html
用递归方法判断字符串是否是回文(Recursion Palindrome Python)相关推荐
- JAVA语言:利用递归方法判断字符串是否为回文
java练习:利用递归方法判断字符串是否为回文(java程序语言设计课后习题4.21) 回文:字符串正向输出和逆向输出结果相同 ,如12321 源代码如下: import java.util.Scan ...
- python判断字符串是否回文_判断字符串是否为回文 python
回文正序和逆序一样的字符串,例如abccba 方法一 def is_palindrome1(text): l = list(text) l.reverse() t1 = ''.join(l) if t ...
- 1.7-33编程基础之字符串 33:判断字符串是否为回文
33:判断字符串是否为回文 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个字符串,输出该字符串是否回文.回文是指顺读和倒读都一样的字符串. 输入 输入为一行字 ...
- C语言试题三十一之判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。
1. 题目 请编写函数function,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no.回文是指顺读和倒读都是一样的字符串. 2 .温馨提示 ...
- 判断字符串是否构成回文_构成字符串回文的最小删除数
判断字符串是否构成回文 Problem statement: 问题陈述: Given string str find the minimum number of deletions such that ...
- bigdecimal 判断是否为数字_C语言判断字符串是否为回文
回文就是字符串中心对称,如"abcba"."abccba"是回文,"abcdba"不是回文. /*判断字符串是否为回文*/ #include ...
- 1.7 编程基础之字符串 33 判断字符串是否为回文 python
http:// http://noi.openjudge.cn/ch0107/33/ """1.7 编程基础之字符串 33 判断字符串是否为回文http://noi.op ...
- 信息学奥赛一本通 1146:判断字符串是否为回文 | OpenJudge NOI 1.7 33:判断字符串是否为回文
[题目链接] ybt 1146:判断字符串是否为回文 OpenJudge NOI 1.7 33:判断字符串是否为回文 [题目考点] 1. 字符串遍历 如何遍历字符串的一半? 如果字符串长度为len,那 ...
- 判断相等_C语言判断字符串是否为回文
回文就是字符串中心对称,如"abcba"."abccba"是回文,"abcdba"不是回文. /*判断字符串是否为回文*/ #include ...
最新文章
- Gartner:如何利用数字孪生帮助企业创造价值?
- postgresql创建只读账号
- 每日一皮:当你开始研究一个新项目时是这样的吗?
- 题目1176:树查找
- 发布安全Web站点详细攻略:ISA2006系列之十四
- C语言在二叉搜索树找到第k个最小元素(附完整源码)
- SAP Fiori Elements 概述
- 六、pink老师学习笔记——CSS三角形之美 margin负值之美文字围绕浮动元素行内块元素布局的巧妙运用
- 曲面设计步骤pdf_3dmax模渲大师|室外设计师怎么用3dmax疯狂模渲大师制作室内设计效果图的外景天空?...
- 苏格拉底与失恋者的对话————最经典的失恋哲理 ...
- 技术在于精,其次在于多
- apache2: unrecognized service
- WORD出错:布局也会超出内容区
- 多屏互动电脑版_手机、电脑屏幕太小怎么办?这4招秒变大屏
- 前轮反馈控制(Stanley) 法
- C语言,进制转换之十六进制转二进制,完整代码
- 识别中文_关于开展中文语音识别和语音合成基础服务可信评估的通知
- 测试工程师入门知识点整理
- 智汇华云 | ArSDN之分布式路由及浮动IP简介
- 青龙面板--花花阅读