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 Queue模块详细介绍及实例
Dec 27 Python
virtualenv实现多个版本Python共存
Aug 21 Python
python设置值及NaN值处理方法
Jul 03 Python
Python连接Mssql基础教程之Python库pymssql
Sep 16 Python
python进行TCP端口扫描的实现
Dec 21 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
python 实现目录复制的三种小结
Dec 04 Python
Pycharm连接远程服务器过程图解
Apr 30 Python
python文件操作seek()偏移量,读取指正到指定位置操作
Jul 05 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
python 写一个水果忍者游戏
Jan 13 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运算符的知识大全
2011/11/03 PHP
PHP 观察者模式的实现代码
2013/05/10 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
jQuery增加自定义函数的方法
2015/07/18 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
python数据结构之链表的实例讲解
2017/07/25 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
Tensorflow分批量读取数据教程
2020/02/07 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
六道php面试题附答案
2014/06/05 面试题
2014政务公开实施方案
2014/02/19 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
Docker安装MySql8并远程访问的实现
2022/07/07 Servers