[本文出自天外归云的博客园]

总结一下关于回文相关的算法:

  1. 判断字符串本身是否是回文
  2. 返回字符串中的所有子串
  3. 找到字符串中包含的所有回文
  4. 判断字符串中是否包含回文
  5. 将字符串变成一个不包含回文的字符串

代码如下:

# 判断字符串本身是否是回文
def is_huiwen(str, i=0):# 回文至少长度为2if len(str) == 1:return False# 撞针法判断是否是回文字符串while True:if i >= len(str) - i:return Trueif str[i] != str[len(str) - i - 1]:return Falsei += 1# 返回字符串中所有的子串
all_substr = lambda str: [str[i:i + x + 1] for x in range(len(str)) for i in range(len(str) - x)]# 找到字符串中包含的所有回文
def find_all_huiwen(str, ret=[]):substrs = all_substr(str)# 遍历字符串中的所有子串并找出所有回文子串for i in range(len(substrs)):if is_huiwen(substrs[i]):ret.append(substrs[i])# 判断字符串中是否包含回文
def contain_huiwen(str):substrs = all_substr(str)# 遍历字符串中所有子串并判断字符串中是否包含回文子串for i in range(len(substrs)):if is_huiwen(substrs[i]):return Truereturn False# 将字符串变成一个没有回文的字符串
def no_huiwen(str, ret="", i=0):# 从字符串的索引第0位开始到字符串索引末位结束while i < len(str) - 1:# 确保新生成的字符串不包含回文if not contain_huiwen(ret + str[i]):ret += str[i]# 逐位判断i += 1return retif __name__ == '__main__':str = "abccbabc"find_all_huiwen(str)print(contain_huiwen(str))print(no_huiwen(str))

转载于:https://www.cnblogs.com/LanTianYou/p/9054245.html

Python3回文相关算法小结相关推荐

  1. python判断回文_Python实现判断一个整数是否为回文数算法示例

    本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...

  2. C语言检查列表是否是回文的算法(附完整源码)

    C语言检查列表是否是回文的算法 C语言检查列表是否是回文的算法完整源码(定义,实现,main函数测试) C语言检查列表是否是回文的算法完整源码(定义,实现,main函数测试) #include < ...

  3. C++longest palindromic subsequence最长回文子序列算法实现(附完整源码)

    C++longest palindromic subsequence最长回文子序列算法 C++longest palindromic subsequence最长回文子序列算法实现完整源码(定义,实现, ...

  4. python判断回文数_Python实现判断一个整数是否为回文数算法示例

    本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...

  5. JAVA:实现LongestPalindromicSubsequence最长回文子序列算法(附完整源码)

    JAVA:实现LongestPalindromicSubsequence最长回文子序列算法 package com.thealgorithms.dynamicprogramming; public c ...

  6. python递归判断回文数_Python实现判断回文数算法

    回文数的定义:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例1: 输入:121 输出:True 示例2: 输入:-121 输出:False 解释: 从左向右读, 为 -121 . ...

  7. c语言多组数据判断回文字符串,详解判断回文字符串跟回文数算法的C语言代码...

    详解判断回文字符串和回文数算法的C语言代码! 一.判断一个字符串是否为回文字符串 #include #include #include //包含strlen #define YES 1 #define ...

  8. java回文数算法for_【Java】【每日算法/刷穿 LeetCode】9. 回文数(简单)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]9. 回文数(简单) 宫水三叶发布于 今天 15:30 题目描述 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从 ...

  9. 最长回文(Manacher算法模板)

    题目描述 给出一个只由小写英文字符a,b,c-y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组case,不超过120组,每 ...

最新文章

  1. Python 生成器总结
  2. 单元测试——第六周作业
  3. android从放弃到精通 第一天 重拾项目开发
  4. q160问题,www.q160.com,ie被篡改
  5. 用vue+webpack搭建的前端项目结构
  6. 一步一步SharePoint 2007之二十五:编写一个最简单的WebPart(3)——添加WebPart
  7. linux update语句,MySQL 多表 update sql语句总结
  8. ajax返回失败原因,ajax POST请求返回失败
  9. 基于 Vue BootStrap的迷你Chrome插件
  10. ios 如何在cell中去掉_iOS开发:关于 去除UITableViewCell复用机制 的几种方法
  11. symfony ajax,如何在php或symfony中使用jQuery ajax上传文件
  12. 中英文对照 —— 标点符号(punctuation)
  13. swift 3.0 协议笔记
  14. [EntLib]UAB(Updater Application Block)下载
  15. 第四次团队作业--选题
  16. yolo标签没有字 windows_对yolo系列的理解
  17. 必须掌握的30种SQL语句优化
  18. 【平头哥蓝牙Mesh网关开发套件试用体验】蓝牙mesh网关接入网络
  19. SQL Server添加Northwind数据库
  20. php yar2,[原]PHP-yar拓展源码解读二-protocol篇

热门文章

  1. 利用python生成一个导出数据库的bat脚本文件
  2. VMware 9 安装 Mac OS X 10.8 Mountain Lion 图文全程
  3. 按ESC关闭当前窗口
  4. 前端学习(3261):js高级教程(4)相关问题
  5. [css] 移动端1px像素的问题及解决方案是什么?
  6. 前端学习(2793):完成联系我们页面和地图
  7. 前端学习(2784):首页轮播图的渲染
  8. 前端学习(2636):文件缺失
  9. 前端学习(2616):请求数据接口
  10. 前端学习(2613):action的方法