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

溫馨提示×

溫馨提示×

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

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

如何用python尋找一個字符串里的最大回文

發布時間:2021-12-18 14:33:56 來源:億速云 閱讀:168 作者:iii 欄目:大數據

這篇文章主要講解了“如何用python尋找一個字符串里的最大回文”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何用python尋找一個字符串里的最大回文”吧!

題目要求如下:

尋找一個字符串里的最大回文,例如字符串"sddcbabcdtre",這里面的最大回文是"dcbabcd"

題目分析    
  • 所謂回文,是指一段字符串從左向右和從右向左看是一樣的

  • 題目講明,是字符串里包含了一段回文,而不是整段字符串是一段回文

  • 回文的長度可以是偶數,也可以是奇數

  • 長度為1的字符串不算回文

思路分析
  • 對字符串進行遍歷

  • 每遍歷到一個字符時,以其為中心向左右兩側驗證是否構成回文

  • 需要變量記錄回文的起始位置和長度

示例代碼

#coding=utf-8

str_value = "sddcbabcdtre"
#str_value = "aaa"
i = 0
start_index = 0  #記錄回文的起始位置
plalindrome_len = 0

while i < len(str_value)-1:
   tmp_len = 0
   left,right = 0,0

   #假設回文長度是偶數
   if str_value[i] == str_value[i+1]:
       # 找到下一個要比較的位置
       left,right = i-1,i+2
       tmp_len = 2

       #注意循環的條件
       while left >= 0 and right < len(str_value):
           if str_value[left] == str_value[right]:
               left -= 1           #向前
               right += 1          #向后
               tmp_len += 2        #長度要加2
           else:
               break

       if tmp_len > plalindrome_len:
           plalindrome_len = tmp_len
           start_index = left + 1  #此處要加1

   #假設回文長度是奇數
   if i > 0 and str_value[i-1] == str_value[i+1]:

       left,right = i-2,i+2
       tmp_len = 3

       while left >= 0 and right < len(str_value):
           if str_value[left] == str_value[right]:
               left -= 1
               right += 1
               tmp_len += 2
           else:
               break

       if tmp_len > plalindrome_len:
           plalindrome_len = tmp_len
           start_index = left + 1

   i += 1

if plalindrome_len == 0:
   print 'no plalindrome'
else:
   print str_value[start_index:
   start_index+plalindrome_len]

關鍵點剖析
  • 程序的關鍵在于以某一個字符為中心,向左右兩側遍歷,以判斷是否構成回文,這很像將一張紙對折

  • 對于while 循環,由于是在遍歷字符串,那么對于兩端的邊界就必須做越界的檢查,這是不可缺少的

  • 程序里可能存在多個回文,因此想找出最大的,必須借助tmp_len來和已經找到的最大回文做比較

感謝各位的閱讀,以上就是“如何用python尋找一個字符串里的最大回文”的內容了,經過本文的學習后,相信大家對如何用python尋找一個字符串里的最大回文這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

永新县| 新平| 玛多县| 邹平县| 如东县| 托克逊县| 敦化市| 阜康市| 东莞市| 安吉县| 嘉义县| 巫溪县| 津南区| 南昌市| 马关县| 广宗县| 南召县| 横山县| 满城县| 永和县| 逊克县| 十堰市| 新野县| 莒南县| 阳西县| 通城县| 荣成市| 霍邱县| 彭泽县| 丰镇市| 永平县| 麻江县| 平舆县| 调兵山市| 化德县| 龙胜| 来凤县| 碌曲县| 什邡市| 葫芦岛市| 儋州市|