Python針對給定字符串求解所有子序列是否為回文序列的方法
更新時間:2018年04月21日 14:52:59 作者:Together_CZ
這篇文章主要介紹了Python針對給定字符串求解所有子序列是否為回文序列的方法,涉及Python針對字符串的遍歷、判斷、運算相關操作技巧,需要的朋友可以參考下
本文實例講述了Python針對給定字符串求解所有子序列是否為回文序列的方法。分享給大家供大家參考,具體如下:
問題:
給定一個字符串,得到所有的子序列,判斷是否為回文序列
思路:
對字符串遍歷切片即可
下面是具體實現(xiàn):
#!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():
'''''
主調用函數(shù)
'''
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():
'''''
主調用函數(shù)
'''
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函數(shù)使用技巧總結》、《Python數(shù)據(jù)結構與算法教程》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
使用Python中tkinter庫簡單gui界面制作及打包成exe的操作方法(二)
這篇文章主要介紹了使用Python中tkinter庫簡單gui界面制作及打包成exe的操作方法(二),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
python 使用遞歸的方式實現(xiàn)語義圖片分割功能
這篇文章主要介紹了python 使用遞歸的方式實現(xiàn)語義圖片分割,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07

