5. 最长回文子串
问题5 最长回文子串 ★☆☆☆☆
https://leetcode-cn.com/problems/longest-palindromic-substring/
动态规划的解法见问题5
我觉得所谓中心扩展解法就是暴力解法。。。,先以每个元素自身为中心左右扩展,再以相邻元素相等的组合为中心左右扩展。
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
28
29
30
31
32
33
34
35
36
37
38
39
public String longestPalindromeSubstring(String s) {
if (s == null) {
return null;
}
int len = s.length();
String ret = "";
for (int i = 0; i < len; i++) {
String expanded = expand(s, i, i);
if (expanded.length() > ret.length()) {
ret = expanded;
}
if (i > 0 && s.charAt(i) == s.charAt(i-1)) {
expanded = expand(s, i-1, i);
if (expanded.length() > ret.length()) {
ret = expanded;
}
}
}
return ret;
}
private String expand(String s, int left, int right) {
int len = s.length();
int i = left - 1, j = right + 1;
while (i >= 0 && j < len) {
if (s.charAt(i) != s.charAt(j)) {
break;
}
i--;
j++;
}
return s.substring(i+1, j);
}
本文由作者按照 CC BY 4.0 进行授权