python求解对给定字符串,求解所有子序列是否为回文序列
来源:互联网 发布:sql developer使用 编辑:程序博客网 时间:2024/06/06 14:16
问题:
给定一个字符串,得到所有的子序列,判断是否为回文序列
思路:
对字符串遍历切片即可
下面是具体实现:
#!usr/bin/env python#encoding: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 Falsedef 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__': main_func2()
结果如下:
-----------------------------------------------a是回文序列c是回文序列d是回文序列b是回文序列-----------------------------------------------a是回文序列abba是回文序列b是回文序列[Finished in 0.3s]
阅读全文
1 0
- python求解对给定字符串,求解所有子序列是否为回文序列
- python求解给定一字符串列表判定每个字符串可以构成的所有序列中回文序列的数目
- python 求解给定字符串中的最长DNA序列长度
- 最长公共子序列求解
- 最长公共子序列求解
- 最长公共子序列求解
- 求解最大子序列和
- 最长单调子序列求解
- 最长递增子序列求解
- 求解最长单调子序列.
- 最大子序列问题求解
- 求解两个字符串的最长公共子序列
- python实现求解最长公共子序列LCS问题
- Python 动态规划算法求解最长公共子序列
- 求数组中和为给定值的所有子序列
- 求解两个序列的所有最长公共子序列(LCSes)
- python求解最大子序列问题,子序列可连续或不连续
- python求解最大子序列乘积问题,子序列可连续也可不连续
- 冒泡排序与快排算法
- Ajax的数据解析
- oracle用户表空间导出导入脚本,以及windows下定时备份脚本
- Android源码学习——ClassLoader(1)
- [微信小程序]脱坑指南
- python求解对给定字符串,求解所有子序列是否为回文序列
- C++常用的查找方法
- 安卓 导入配置 Android Import the configuration
- Tomcat和Java Virtual Machine的性能调优总结
- AndroiStudio Error:Execution failed for task ':app:process_360DebugManifest 报错
- semver
- Bad Cowtractors
- js动态设置鼠标悬浮
- 关于NetBean 下PHP的 Fatal error: Call to undefined function curl_init() in F:\phpdemo\Apache24\htdocs\ms