python求解给定一字符串列表判定每个字符串可以构成的所有序列中回文序列的数目
来源:互联网 发布:合肥机动车选号软件 编辑:程序博客网 时间:2024/05/17 03:28
问题描述:
给定一个待判定的字符串列表,对其中的每个字符串进行判断,计算每个字符所有可能的回文序列数目
做法思想:
这里采取对单个字符串生成得到其全排列的方式,之后对每个排序字符串进行判断,统计结果输出即可
优、缺点:
简单易懂易实现,但是消耗内存较多
下面是具体的实现:
#!usr/bin/env python#encoding:utf-8'''__Author__:沂水寒城功能:给定一个字符串求解所有可能的回文序列'''def huiwen(one_str): ''' 输入字符串,判断是否是回文序列,返回布尔值 ''' length=len(one_str) if length%2==0: half=length/2 first_str=one_str[:half] second_str=''.join(list(one_str[half:])[::-1]) if first_str==second_str: return True else: return False else: half=(length+1)/2 first_str=one_str[:half-1] second_str=''.join(list(one_str[half:])[::-1]) if first_str==second_str: return True else: return Falsedef all_sorts(str_list): ''' 输入字符串列表,输出全排序列表 ''' if len(str_list) == 0 or len(str_list) == 1: return [str_list] result = [] for i in str_list: temp_list = str_list[:] #复制 temp_list.remove(i) temp = all_sorts(temp_list) #使用递归 生成删掉一个元素的xs的全排列 for one in temp: #对temp中的每一项再进行遍历 one[0:0] = [i] #在index 0 的位置插入之前删去的i result.append(one) return resultdef judge_is_huiwen(new_list): ''' 输入全排序字符串列表输出可以组成的回文串数量 ''' count=0 for one in new_list: if huiwen(one): count+=1 return countdef main_func(one_str_list): ''' 主调用函数,输入为一个待判定字符串列表,输出可以构成的回文序列数目 ''' for one_str in one_str_list: one_list=list(one_str) one_result_list=all_sorts(one_list) one_new_list=[''.join(one) for one in one_result_list] print '该字符串所有可能构成的回文序列数目为:', judge_is_huiwen(one_new_list)if __name__=='__main__': # 单个测试样例 # one_str='12345' # one_list=list(one_str) # result_list=all_sorts(one_list) # new_list=[''.join(one) for one in result_list] # print '该字符串所有可能构成的回文序列数目为:', judge_is_huiwen(new_list) one_str_list=['aaabb','abcdef','aaa','adc'] main_func(one_str_list)
结果如下:
该字符串所有可能构成的回文序列数目为: 24该字符串所有可能构成的回文序列数目为: 0该字符串所有可能构成的回文序列数目为: 6该字符串所有可能构成的回文序列数目为: 0
阅读全文
0 0
- python求解给定一字符串列表判定每个字符串可以构成的所有序列中回文序列的数目
- python求解对给定字符串,求解所有子序列是否为回文序列
- 求给定字符串中最长回文序列
- python 求解给定字符串中的最长DNA序列长度
- 关于在字符串中获得所有的回文子序列的数量
- python实现完整的求解给定列表中所有的平衡点问题,是所有的平衡点
- 字符串子序列数目
- 【算法】寻找字符串中最长的回文序列
- 计算字符串的最长回文子序列
- 输出字符串的最长回文序列
- 判断组成回文的字符串序列
- 给定两个字符串和一个字典,从头到尾找到最短变换序列的长度,使得:一次只能改变一个字符每个中间词必须存在于字典中
- 求取任意字符串的所有子序列
- Python序列:字符串、列表和元组(一)
- Python序列:字符串,列表和元组(一)
- 给定一个字符串只含有数字,判定这个字符串能表达的所有IP地址
- 回文字符串小结(回文串判定+最长回文子序列)
- <实例>输出给定字符串的全部连续子序列
- Spring IoC容器
- HDU-6035 Colorful Tree(树型dp)
- empy catkin_pkg
- Python list
- 推荐引擎—概述
- python求解给定一字符串列表判定每个字符串可以构成的所有序列中回文序列的数目
- MySQL学习笔记-表
- 计算器的Swing界面
- ssm导出
- 曾经的王者:Adobe宣布Flash技术将于2020年底退役!
- springboot手写JDBC面对2000并发量毫无压力
- java基础知识(读书笔记,练习题笔记)
- Rabbitmq C++客户端 Rabbitmq Client
- C#线程池学习笔记