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实现从url中提取域名的几种方法
Sep 26 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
举例详解Python中循环语句的嵌套使用
May 14 Python
Python利用turtle库绘制彩虹代码示例
Dec 20 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
python PrettyTable模块的安装与简单应用
Jan 11 Python
在python里从协程返回一个值的示例
Feb 19 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
python 动态调用函数实例解析
Oct 21 Python
python中把元组转换为namedtuple方法
Dec 09 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
星际玩家的三大定律
2020/03/04 星际争霸
无数据库的详细域名查询程序PHP版(1)
2006/10/09 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
php实例分享之二维数组排序
2014/05/15 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
跟老齐学Python之数据类型总结
2014/09/24 Python
python执行get提交的方法
2015/04/29 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
2020/10/19 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
如何手工释放资源
2013/12/15 面试题
求职信需要的五点内容
2014/02/01 职场文书
音乐教师个人总结
2015/02/06 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
图解上海144收音机
2021/04/22 无线电
Django如何创作一个简单的最小程序
2021/05/12 Python
AJAX实现省市县三级联动效果
2021/10/16 Javascript
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
Golang 结构体数据集合
2022/04/22 Golang