欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)尋找最長回文子序列的方法

 更新時間:2018年06月02日 15:45:42   作者:Together_CZ  
這篇文章主要為大家詳細介紹了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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python tempfile模塊生成臨時文件和臨時目錄

    Python tempfile模塊生成臨時文件和臨時目錄

    這篇文章主要介紹了Python tempfile模塊生成臨時文件和臨時目錄,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Python報錯ImportError: No module named ‘missing_module‘的解決方法

    Python報錯ImportError: No module named ‘mi

    在 Python 開發(fā)過程中,報錯是常有的事,而當(dāng)遇到“ImportError: No module named ‘missing_module’”這樣的報錯時,可能會讓開發(fā)者感到困惑和苦惱,本文將深入探討這個報錯的原因和解決方法,幫助開發(fā)者快速解決這個問題,需要的朋友可以參考下
    2024-10-10
  • python實現(xiàn)簡單俄羅斯方塊

    python實現(xiàn)簡單俄羅斯方塊

    這篇文章主要為大家詳細介紹了python實現(xiàn)簡單俄羅斯方塊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python如何匹配文本并在其上一行追加文本

    Python如何匹配文本并在其上一行追加文本

    這篇文章主要介紹了Python如何匹配文本并在其上一行追加文本,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • pytorch DistributedDataParallel 多卡訓(xùn)練結(jié)果變差的解決方案

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

    這篇文章主要介紹了pytorch DistributedDataParallel 多卡訓(xùn)練結(jié)果變差的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python實現(xiàn)求一個集合所有子集的示例

    Python實現(xiàn)求一個集合所有子集的示例

    今天小編就為大家分享一篇Python 實現(xiàn)求一個集合所有子集的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python Opencv實戰(zhàn)之文字檢測OCR

    Python Opencv實戰(zhàn)之文字檢測OCR

    這篇文章主要為大家詳細介紹了如何利用Python Opencv實現(xiàn)文字檢測OCR功能,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2022-08-08
  • 如何基于Python實現(xiàn)數(shù)字類型轉(zhuǎn)換

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

    這篇文章主要介紹了如何基于Python實現(xiàn)數(shù)字類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • 最新評論