91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何實現尋找最長回文子序列的方法

發布時間:2021-04-12 13:40:15 來源:億速云 閱讀:187 作者:小新 欄目:開發技術

這篇文章主要介紹了python如何實現尋找最長回文子序列的方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體實現:

#!usr/bin/env python 
#encoding:utf-8 
 
''''' 
__Author__:沂水寒城 
功能:尋找最長回文子序列 
''' 
 
def slice_window(one_str,w=1): 
  ''''' 
  滑窗函數 
  ''' 
  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): 
  ''''' 
  主函數,尋找最長回文子序列 
  ''' 
  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)

結果如下:

abcdcba 
abcba 
bb 
abcba 
[Finished in 0.3s] 

感謝你能夠認真閱讀完這篇文章,希望小編分享的“python如何實現尋找最長回文子序列的方法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永胜县| 齐齐哈尔市| 浦北县| 金昌市| 郎溪县| 闸北区| 同德县| 西昌市| 松溪县| 黑山县| 盈江县| 平邑县| 张掖市| 海宁市| 荔波县| 稷山县| 冕宁县| 甘孜| 灌云县| 昭苏县| 射阳县| 凤翔县| 灵寿县| 宁海县| 雷州市| 临高县| 青龙| 镇沅| 泾源县| 拜城县| 莫力| 积石山| 长宁区| 张家口市| 四子王旗| 霍山县| 深州市| 广西| 莱州市| 九台市| 龙里县|