From 11d708b69bb2d37f2c8d3b99441d7e060002edac Mon Sep 17 00:00:00 2001 From: enril <48513933+enrilwang@users.noreply.github.com> Date: Sat, 20 Mar 2021 19:55:00 +1100 Subject: [PATCH] =?UTF-8?q?Update=20=E6=9C=80=E9=95=BF=E5=9B=9E=E6=96=87?= =?UTF-8?q?=E5=AD=90=E4=B8=B2.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...36\346\226\207\345\255\220\344\270\262.md" | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git "a/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\346\234\200\351\225\277\345\233\236\346\226\207\345\255\220\344\270\262.md" "b/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\346\234\200\351\225\277\345\233\236\346\226\207\345\255\220\344\270\262.md" index 5873277..030257b 100644 --- "a/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\346\234\200\351\225\277\345\233\236\346\226\207\345\255\220\344\270\262.md" +++ "b/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\346\234\200\351\225\277\345\233\236\346\226\207\345\255\220\344\270\262.md" @@ -167,4 +167,38 @@ class Solution { } ``` + +[enrilwang](https://github.com/enrilwang) 提供 Python 代码: + +```python +// 中心扩展算法 +class Solution: + def longestPalindrome(self, s: str) -> str: + //用n来装字符串长度,res来装答案 + n = len(s) + res = str() + //字符串长度小于2,就返回本身 + if n < 2: return s + for i in range(n-1): + //oddstr是以i为中心的最长回文子串 + oddstr = self.centerExtend(s,i,i) + //evenstr是以i和i+1为中心的最长回文子串 + evenstr = self.centerExtend(s,i,i+1) + temp = oddstr if len(oddstr)>len(evenstr) else evenstr + if len(temp)>len(res):res=temp + + return res + + def centerExtend(self,s:str,left,right)->str: + // + while left >= 0 and right < len(s) and s[left] == s[right]: + left -= 1 + right += 1 + //这里要注意,跳出while循环时,恰好s[left] != s[right] + return s[left+1:right] + + +``` + + 做完这题,大家可以去看看 [647. 回文子串](https://leetcode-cn.com/problems/palindromic-substrings/) ,也是类似的题目 -- GitLab