中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

肥乡县| 贵港市| 新津县| 股票| 九龙县| 独山县| 焦作市| 沙田区| 桐梓县| 娄烦县| 余姚市| 安陆市| 德庆县| 东明县| 平利县| 三都| 峨边| 吉木萨尔县| 咸阳市| 永和县| 买车| 城固县| 韶山市| 邹平县| 鹤岗市| 军事| 万州区| 吴江市| 凤山市| 大新县| 富锦市| 普格县| 扬州市| 汉寿县| 彭阳县| 大足县| 裕民县| 乌拉特前旗| 开阳县| 苗栗市| 黄浦区|