所谓回文字符串,就是一个字符串从左到右读和从右到左读是完全一样的。比如:"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)相关推荐

  1. JAVA语言:利用递归方法判断字符串是否为回文

    java练习:利用递归方法判断字符串是否为回文(java程序语言设计课后习题4.21) 回文:字符串正向输出和逆向输出结果相同 ,如12321 源代码如下: import java.util.Scan ...

  2. python判断字符串是否回文_判断字符串是否为回文 python

    回文正序和逆序一样的字符串,例如abccba 方法一 def is_palindrome1(text): l = list(text) l.reverse() t1 = ''.join(l) if t ...

  3. 1.7-33编程基础之字符串 33:判断字符串是否为回文

    33:判断字符串是否为回文 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个字符串,输出该字符串是否回文.回文是指顺读和倒读都一样的字符串. 输入 输入为一行字 ...

  4. C语言试题三十一之判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。

    1. 题目 请编写函数function,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no.回文是指顺读和倒读都是一样的字符串. 2 .温馨提示 ...

  5. 判断字符串是否构成回文_构成字符串回文的最小删除数

    判断字符串是否构成回文 Problem statement: 问题陈述: Given string str find the minimum number of deletions such that ...

  6. bigdecimal 判断是否为数字_C语言判断字符串是否为回文

    回文就是字符串中心对称,如"abcba"."abccba"是回文,"abcdba"不是回文. /*判断字符串是否为回文*/ #include ...

  7. 1.7 编程基础之字符串 33 判断字符串是否为回文 python

    http:// http://noi.openjudge.cn/ch0107/33/ """1.7 编程基础之字符串 33 判断字符串是否为回文http://noi.op ...

  8. 信息学奥赛一本通 1146:判断字符串是否为回文 | OpenJudge NOI 1.7 33:判断字符串是否为回文

    [题目链接] ybt 1146:判断字符串是否为回文 OpenJudge NOI 1.7 33:判断字符串是否为回文 [题目考点] 1. 字符串遍历 如何遍历字符串的一半? 如果字符串长度为len,那 ...

  9. 判断相等_C语言判断字符串是否为回文

    回文就是字符串中心对称,如"abcba"."abccba"是回文,"abcdba"不是回文. /*判断字符串是否为回文*/ #include ...

最新文章

  1. Gartner:如何利用数字孪生帮助企业创造价值?
  2. postgresql创建只读账号
  3. 每日一皮:当你开始研究一个新项目时是这样的吗?
  4. 题目1176:树查找
  5. 发布安全Web站点详细攻略:ISA2006系列之十四
  6. C语言在二叉搜索树找到第k个最小元素(附完整源码)
  7. SAP Fiori Elements 概述
  8. 六、pink老师学习笔记——CSS三角形之美 margin负值之美文字围绕浮动元素行内块元素布局的巧妙运用
  9. 曲面设计步骤pdf_3dmax模渲大师|室外设计师怎么用3dmax疯狂模渲大师制作室内设计效果图的外景天空?...
  10. 苏格拉底与失恋者的对话————最经典的失恋哲理 ...
  11. 技术在于精,其次在于多
  12. apache2: unrecognized service
  13. WORD出错:布局也会超出内容区
  14. 多屏互动电脑版_手机、电脑屏幕太小怎么办?这4招秒变大屏
  15. 前轮反馈控制(Stanley) 法
  16. C语言,进制转换之十六进制转二进制,完整代码
  17. 识别中文_关于开展中文语音识别和语音合成基础服务可信评估的通知
  18. 测试工程师入门知识点整理
  19. 智汇华云 | ArSDN之分布式路由及浮动IP简介
  20. 青龙面板--花花阅读

热门文章

  1. JSONModel - 字符串换转实体类
  2. 使用maven构建web项目
  3. Spring--Quartz 任务调度的配置详解
  4. 正则表达式的基本语法[转]
  5. 自动驾驶场景解析:图像分割开发实战
  6. 太强了!机器视觉相机解决硬币制造难题!
  7. 项目合作 | 室内场景三维重建
  8. 速度申请!2020年度腾讯犀牛鸟精英人才培养计划今日发布
  9. TensorFlow 与 PyTorch 之争
  10. 经验 | 在C++平台上部署PyTorch模型流程+踩坑实录