python實現(xiàn)尋找最長回文子序列的方法
本文實例為大家分享了python實現(xiàn)尋找最長回文子序列,這一類的問題可以使用動態(tài)規(guī)劃的方法去做,我之前應(yīng)該有幾篇博文都是關(guān)于回文序列的求解的,正好有可以復(fù)用的代碼就懶得再用別的方法寫了,直接套用,思想還是滑窗切片,很簡單就是運算會多點,下面是具體實現(xiàn):
#!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:尋找最長回文子序列 ''' def slice_window(one_str,w=1): ''''' 滑窗函數(shù) ''' res_list=[] for i in range(0,len(one_str)-w+1): res_list.append(one_str[i:i+w]) return res_list 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 find_longest_sub_palindrome_str(one_str): ''''' 主函數(shù),尋找最長回文子序列 ''' all_sub=[] for i in range(1,len(one_str)): all_sub+=slice_window(one_str,i) all_sub.append(one_str) new_list=[] for one in all_sub: if is_huiwen(list(one)): new_list.append(one) new_list.sort(lambda x,y:cmp(len(x),len(y)),reverse=True) print new_list[0] if __name__ == '__main__': one_str_list=['uabcdcbaop','abcba','dmfdkgbbfdlg','mnfkabcbadk'] for one_str in one_str_list: find_longest_sub_palindrome_str(one_str)
結(jié)果如下:
abcdcba
abcba
bb
abcba
[Finished in 0.3s]
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python3實現(xiàn)的判斷回文鏈表算法示例
- Python3最長回文子串算法示例
- Python計算回文數(shù)的方法
- python實現(xiàn)求最長回文子串長度
- 對python判斷是否回文數(shù)的實例詳解
- Python實現(xiàn)判斷一個整數(shù)是否為回文數(shù)算法示例
- Python將阿拉伯?dāng)?shù)字轉(zhuǎn)換為羅馬數(shù)字的方法
- Python實現(xiàn)將羅馬數(shù)字轉(zhuǎn)換成普通阿拉伯?dāng)?shù)字的方法
- Python簡單實現(xiàn)阿拉伯?dāng)?shù)字和羅馬數(shù)字的互相轉(zhuǎn)換功能示例
- Python3.5實現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能示例
- Python3實現(xiàn)的回文數(shù)判斷及羅馬數(shù)字轉(zhuǎn)整數(shù)算法示例
相關(guān)文章
pytorch Variable與Tensor合并后 requires_grad()默認與修改方式
這篇文章主要介紹了pytorch Variable與Tensor合并后 requires_grad()默認與修改方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05

Python報錯ImportError: No module named ‘mi

pytorch DistributedDataParallel 多卡訓(xùn)練結(jié)果變差的解決方案

如何基于Python實現(xiàn)數(shù)字類型轉(zhuǎn)換