From e7d18f4985fbe1d55fbf220f5ad02f29c2c1061a Mon Sep 17 00:00:00 2001 From: chenzhengwei Date: Tue, 16 May 2017 15:47:34 +0800 Subject: [PATCH] a5 --- README.md | 2 ++ Solution/1-50/5.md | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 Solution/1-50/5.md diff --git a/README.md b/README.md index f361299..a7f7a13 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ leetcode 题解 [4. Median of Two Sorted Arrays](Solution/1-50/4.md) +[5. Longest Palindromic Substring](Solution/1-50/5.md) + [7. Reverse Integer](Solution/1-50/7.md) [8. String to Integer (atoi)](Solution/1-50/8.md) diff --git a/Solution/1-50/5.md b/Solution/1-50/5.md new file mode 100644 index 0000000..2661f9a --- /dev/null +++ b/Solution/1-50/5.md @@ -0,0 +1,34 @@ +#5. Longest Palindromic Substring +[题目链接](https://leetcode.com/problems/longest-palindromic-substring/#/description) +```python +class Solution(object): + start = maxLength = 0 + def findPalindrome(self, s, i, j): + """ + :param s: str + :param i: int + :param j: int + :return: + """ + while i >= 0 and j < len(s) and s[i] == s[j]: + i -= 1 + j += 1 + length = j - i - 1 + if length > self.maxLength: + self.maxLength = length + self.start = i + 1 + + def longestPalindrome(self, s): + """ + :type s: str + :rtype: str + """ + if len(s) <= 2: + return s + # 遍历字符串计算,分奇数情况和偶数情况 + for i in range(len(s)): + self.findPalindrome(s, i, i) + self.findPalindrome(s, i, i + 1) + return s[self.start: self.start + self.maxLength] + +``` \ No newline at end of file