判斷字串是否為迴文 python實現
阿新 • • 發佈:2019-01-05
題目:判斷一個字串是否是迴文
方法:設定兩個指標,分別有頭尾向中間移動 或者由中間向兩邊移動
#!/usr/bin/env python # -*- coding: utf-8 -*- def isPalindrome(s): '''判斷一個字串是否為迴文''' lens = len(s) if lens <=1: return True l,r = 0, lens-1 while l<r: if s[l] != s[r]: return False l += 1 r -= 1 return True def longestPalindrome(s): '''查詢一個字串中的最長迴文字串''' maxl, lens = 1, len(s) for i in xrange(lens): j = 1 while i-j>=0 and i+j<lens: if s[i-j] != s[i+j]: break j += 1 if 2*(j-1)+1 > maxl: maxl = 2*(j-1) + 1 j = 0 while i-j>=0 and i+j+1<lens: if s[i-j] != s[i+j+1]: break j += 1 if 2*(j-1)+2 > maxl: maxl = 2*(j-1) + 2 return maxl if __name__ == '__main__': s = 'qabcdefgfedcbaa' print isPalindrome(s) print longestPalindrome(s)