05 最长回文子串

更新Java动态绘画方法, 之前的根本就不是这个题
This commit is contained in:
AronJudge
2022-08-20 16:50:29 +08:00
parent 6a20172003
commit b2534f7993

View File

@ -263,21 +263,39 @@ public:
Java Java
```java ```java
public int[] twoSum(int[] nums, int target) { // 双指针 动态规划
int[] res = new int[2]; class Solution {
if(nums == null || nums.length == 0){ public String longestPalindrome(String s) {
return res; if (s.length() == 0 || s.length() == 1) return s;
} int length = 1;
Map<Integer, Integer> map = new HashMap<>(); int index = 0;
for(int i = 0; i < nums.length; i++){ boolean[][] palindrome = new boolean[s.length()][s.length()];
int temp = target - nums[i]; for (int i = 0; i < s.length(); i++) {
if(map.containsKey(temp)){ palindrome[i][i] = true;
res[1] = i;
res[0] = map.get(temp);
} }
map.put(nums[i], i);
for (int L = 2; L <= s.length(); L++) {
for (int i = 0; i < s.length(); i++) {
int j = i + L - 1;
if (j >= s.length()) break;
if (s.charAt(i) != s.charAt(j)) {
palindrome[i][j] = false;
} else {
if (j - i < 3) {
palindrome[i][j] = true;
} else {
palindrome[i][j] = palindrome[i + 1][j - 1];
}
}
if (palindrome[i][j] && j - i + 1 > length) {
length = j - i + 1;
index = i;
}
}
}
return s.substring(index, index + length);
} }
return res;
} }
``` ```