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 del()函数用法
Mar 24 Python
python编程开发之日期操作实例分析
Nov 13 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
python使用mysql数据库示例代码
May 21 Python
python从子线程中获得返回值的方法
Jan 30 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
python 求10个数的平均数实例
Dec 16 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
Python内置类型性能分析过程实例
Jan 29 Python
Python小白垃圾回收机制入门
Jun 09 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
Python爬虫中urllib3与urllib的区别是什么
Jul 21 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
天津市收音机工业发展史
2021/03/04 无线电
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
python sort、sorted高级排序技巧
2014/11/21 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
对python调用RPC接口的实例详解
2019/01/03 Python
详解django中Template语言
2020/02/22 Python
OpenCV Python实现拼图小游戏
2020/03/23 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
经典c++面试题六
2012/01/18 面试题
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
数控机械专业个人的自我评价
2014/01/02 职场文书
节能环保口号
2014/06/12 职场文书
2014年服务员工作总结
2014/11/18 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
Oracle使用别名的好处
2022/04/19 Oracle
MySQL如何使备份得数据保持一致
2022/05/02 MySQL