Python针对给定字符串求解所有子序列是否为回文序列的方法


Posted in Python onApril 21, 2018

本文实例讲述了Python针对给定字符串求解所有子序列是否为回文序列的方法。分享给大家供大家参考,具体如下:

问题:

给定一个字符串,得到所有的子序列,判断是否为回文序列

思路:

对字符串遍历切片即可

下面是具体实现:

#!usr/bin/env python
# -*- coding:utf-8 -*-
'''''
__AUthor__:沂水寒城
功能:对指定字符串寻找所有回文子序列
'''
def is_huiwen(one_str_list):
  '''''
  输入一个字符串列表,判断是否为回文序列
  '''
  if len(one_str_list)==1:
    return True
  else:
    half=len(one_str_list)/2
    if len(one_str_list)%2==0:
      first_list=one_str_list[:half]
      second_list=one_str_list[half:]
    else:
      first_list=one_str_list[:half]
      second_list=one_str_list[half+1:]
    if first_list==second_list[::-1]:
      return True
    else:
      return False
def get_list_all_sub_list(num_list):
  '''
  输入一个列表,返回该列表所有的子列表,这里定义的空列表不属于子列表,故:子列表最小长度为1
  '''
  if len(num_list)==1:
    return [num_list]
  sub_list=get_list_all_sub_list(num_list[:-1])
  extra=num_list[-1:]
  temp_list=[]
  for one in sub_list:
    temp_list.append(one+extra)
  return sub_list+temp_list
def slice_func(one_str):
  '''''
  '''
  result_list=[]
  for i in range(1,len(one_str)):
    result_list.append(one_str[:i])
    result_list.append(one_str[i:])
  result_list+=list(one_str)
  result_list.append(one_str)
  return list(set(result_list))
def main_func2():
  '''''
  主调用函数
  '''
  str_list=['abdc','abba']
  for one_str in str_list:
    result_list=slice_func(one_str)
    print '-----------------------------------------------'
    for one in result_list:
      if is_huiwen(list(one)):
        print one+'是回文序列'
def main_func1():
  '''''
  主调用函数
  '''
  str_list=['abdc','abba']
  for one_str in str_list:
    one_str_list=list(one_str)
    one_all_sub_list=get_list_all_sub_list(one_str_list)
    print '------------------------------------------------'
    print one_all_sub_list
    for one in one_all_sub_list:
      if is_huiwen(one):
        print ''.join(one)+'是回文序列'
if __name__ == '__main__':
  print "三水点靠木测试结果:"
  main_func2()

结果如下:

Python针对给定字符串求解所有子序列是否为回文序列的方法

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python使用BeautifulSoup分页网页中超链接的方法
Apr 04 Python
python函数局部变量用法实例分析
Aug 04 Python
Python中强大的命令行库click入门教程
Dec 26 Python
django启动uwsgi报错的解决方法
Apr 08 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
在python中按照特定顺序访问字典的方法详解
Dec 14 Python
Python flask框架post接口调用示例
Jul 03 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 Python
Python如何使用BeautifulSoup爬取网页信息
Nov 26 Python
在python中创建指定大小的多维数组方式
Nov 28 Python
python双向链表原理与实现方法详解
Dec 03 Python
python文件处理fileinput使用方法详解
Jan 02 Python
Django项目实战之用户头像上传与访问的示例
Apr 21 #Python
基于Python 装饰器装饰类中的方法实例
Apr 21 #Python
使用python装饰器计算函数运行时间的实例
Apr 21 #Python
Python实现针对给定字符串寻找最长非重复子串的方法
Apr 21 #Python
Python 实现一行输入多个值的方法
Apr 21 #Python
Python实现接受任意个数参数的函数方法
Apr 21 #Python
深入分析python数据挖掘 Json结构分析
Apr 21 #Python
You might like
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
微信小程序收藏功能的实现代码
2018/06/12 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
python实现巡检系统(solaris)示例
2014/04/02 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
python lxml中etree的简单应用
2019/05/10 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
用python解压分析jar包实例
2020/01/16 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
交警个人先进事迹材料
2014/05/11 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
接收函格式
2015/01/30 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers