LeetCode 005 最长回文子串

Hello Code

问题

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。
示例1:

1
2
3
输入: "babad"
输出: "bab"
注意: "aba"也是一个有效答案。

示例2:

1
2
输入: "cbbd"
输出: "bb"

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Solution {
public String longestPalindrome(String s) {
int maxLen = s.length();
int windowLen = maxLen;
while(windowLen > 0) {
int i = 0;
while(i + windowLen <= maxLen) {
String substr = s.substring(i, i + windowLen);
if(isPalindrome(substr)) {
return substr;
}
i++;
}
windowLen--;
}
return "";
}
public boolean isPalindrome(String substring) {
int length = substring.length();
for(int i = 0; i < length / 2; i++) {
if(substring.charAt(i) != substring.charAt(length - i - 1))
return false;
}
return true;
}
}
------------- 本 文 结 束 感 谢 您 的 阅 读 -------------
坚持原创技术分享,您的支持将鼓励我继续创作!
0%