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中让MySQL查询结果返回字典类型的方法
Aug 22 Python
用Python进行一些简单的自然语言处理的教程
Mar 31 Python
Python在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
Django REST为文件属性输出完整URL的方法
Dec 18 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 Python
python 实现调用子文件下的模块方法
Dec 07 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
pytorch 如何使用batch训练lstm网络
May 28 Python
Python编解码问题及文本文件处理方法详解
Jun 20 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
自己动手做一个SQL解释器
2006/10/09 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
浅析php创建者模式
2014/11/25 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
js传值 判断
2006/10/26 Javascript
javascript 文档的编码问题解决
2009/03/01 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
python获取远程图片大小和尺寸的方法
2015/03/26 Python
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
使用Python更换外网IP的方法
2018/07/09 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
详解python内置模块urllib
2020/09/09 Python
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
婚前财产公证书
2014/04/10 职场文书
纪检监察建议书
2014/05/19 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
升职自荐书
2019/05/09 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
jQuery实现影院选座订座效果
2021/04/13 jQuery
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js