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中List.index()方法的使用教程
May 20 Python
Python3使用requests发闪存的方法
May 11 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
如何利用python制作时间戳转换工具详解
Sep 12 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
对Python3 序列解包详解
Feb 16 Python
在VS2017中用C#调用python脚本的实现
Jul 31 Python
Python字典推导式将cookie字符串转化为字典解析
Aug 10 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
python中get和post有什么区别
Jun 19 Python
Python如何实现机器人聊天
Sep 10 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远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
PHP分页显示制作详细讲解
2008/11/19 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
js arguments对象应用介绍
2012/11/28 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
创建绿色社区汇报材料
2014/08/22 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
nginx配置限速限流基于内置模块
2022/05/02 Servers