Python针对给定字符串求解所有子序列是否为回文序列的方法
2018-04-21 14:52
1031 查看
问题:
给定一个字符串,得到所有的子序列,判断是否为回文序列
思路:
对字符串遍历切片即可
下面是具体实现:
#!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字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- Python实现针对给定字符串寻找最长非重复子串的方法
- python判断给定的字符串是否是有效日期的方法
- python判断给定的字符串是否是有效日期的方法
- 判断一个字符串是否能够通过添加一个字符变成回文序列的方法
- 给定一个字符串,确定它是否是回文,只考虑字母数字字符和忽略大小写。
- python判断字符串(string)是否包含(contains)子字符串的方法
- python序列类型字符串的方法L.index()与L.find()区别
- python判断字符串是否是json格式方法分享
- python 判断字符串时是否是json格式方法
- 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代
- Python实现判断给定列表是否有重复元素的方法
- Python实现针对给定单链表删除指定节点的方法
- 求给定字符串中最长回文序列
- 使用栈判断给定字符串是否是回文的算法
- 用递归实现判断一个字符串是否是回文的方法
- python字符串split(),join(),strip()函数及网易笔试 回文序列
- 陈利人 面试题 给定两个字符串s和t(len(s)>len(t)),t可能是s的一个子序列。求所有s的子序列集合中,有多少个子序列等于t。
- 用递归实现判断一个字符串是否是回文的方法
- python判断字符串(string)是否包含(contains)子字符串的方法
- Python实现在给定整数序列中找到和为100的所有数字组合