Python3回文相关算法小结
[本文出自天外归云的博客园]
总结一下关于回文相关的算法:
- 判断字符串本身是否是回文
- 返回字符串中的所有子串
- 找到字符串中包含的所有回文
- 判断字符串中是否包含回文
- 将字符串变成一个不包含回文的字符串
代码如下:
# 判断字符串本身是否是回文 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回文相关算法小结相关推荐
- python判断回文_Python实现判断一个整数是否为回文数算法示例
本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...
- C语言检查列表是否是回文的算法(附完整源码)
C语言检查列表是否是回文的算法 C语言检查列表是否是回文的算法完整源码(定义,实现,main函数测试) C语言检查列表是否是回文的算法完整源码(定义,实现,main函数测试) #include < ...
- C++longest palindromic subsequence最长回文子序列算法实现(附完整源码)
C++longest palindromic subsequence最长回文子序列算法 C++longest palindromic subsequence最长回文子序列算法实现完整源码(定义,实现, ...
- python判断回文数_Python实现判断一个整数是否为回文数算法示例
本文实例讲述了Python实现判断一个整数是否为回文数算法.分享给大家供大家参考,具体如下: 第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较 def isPalindrome(se ...
- JAVA:实现LongestPalindromicSubsequence最长回文子序列算法(附完整源码)
JAVA:实现LongestPalindromicSubsequence最长回文子序列算法 package com.thealgorithms.dynamicprogramming; public c ...
- python递归判断回文数_Python实现判断回文数算法
回文数的定义:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例1: 输入:121 输出:True 示例2: 输入:-121 输出:False 解释: 从左向右读, 为 -121 . ...
- c语言多组数据判断回文字符串,详解判断回文字符串跟回文数算法的C语言代码...
详解判断回文字符串和回文数算法的C语言代码! 一.判断一个字符串是否为回文字符串 #include #include #include //包含strlen #define YES 1 #define ...
- java回文数算法for_【Java】【每日算法/刷穿 LeetCode】9. 回文数(简单)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]9. 回文数(简单) 宫水三叶发布于 今天 15:30 题目描述 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从 ...
- 最长回文(Manacher算法模板)
题目描述 给出一个只由小写英文字符a,b,c-y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组case,不超过120组,每 ...
最新文章
- Python 生成器总结
- 单元测试——第六周作业
- android从放弃到精通 第一天 重拾项目开发
- q160问题,www.q160.com,ie被篡改
- 用vue+webpack搭建的前端项目结构
- 一步一步SharePoint 2007之二十五:编写一个最简单的WebPart(3)——添加WebPart
- linux update语句,MySQL 多表 update sql语句总结
- ajax返回失败原因,ajax POST请求返回失败
- 基于 Vue BootStrap的迷你Chrome插件
- ios 如何在cell中去掉_iOS开发:关于 去除UITableViewCell复用机制 的几种方法
- symfony ajax,如何在php或symfony中使用jQuery ajax上传文件
- 中英文对照 —— 标点符号(punctuation)
- swift 3.0 协议笔记
- [EntLib]UAB(Updater Application Block)下载
- 第四次团队作业--选题
- yolo标签没有字 windows_对yolo系列的理解
- 必须掌握的30种SQL语句优化
- 【平头哥蓝牙Mesh网关开发套件试用体验】蓝牙mesh网关接入网络
- SQL Server添加Northwind数据库
- php yar2,[原]PHP-yar拓展源码解读二-protocol篇