亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何用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

图木舒克市| 连云港市| 多伦县| 营山县| 西乌珠穆沁旗| 周口市| 沾益县| 兴安县| 宣威市| 广丰县| 商河县| 昌黎县| 洱源县| 郑州市| 祁连县| 富顺县| 建宁县| 武功县| 苍山县| 台中县| 绥化市| 石河子市| 高州市| 闻喜县| 汶上县| 白朗县| 井冈山市| 安龙县| 沙田区| 蚌埠市| 鹤壁市| 广东省| 望城县| 监利县| 会昌县| 鄱阳县| 绍兴市| 柳林县| 彭水| 巫山县| 正镶白旗|