题目考察的知识点是:
动态规划。
题目解答方法的文字分析:
先判断字符串是否为空,然后先设置一个开始值,最大值,最后根据这两个值去截取字符串。
本题解析所用的编程语言:
java语言。
完整且正确的编程代码:
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ public String longestPalindrome (String s) { // write code here if (s == null || s.length() == 0) { return ""; } int n = s.length(); int max = 0, start = 0; for (int i = 0; i < n; i++) { int len = Math.max(maxLen(s, i, i), maxLen(s, i, i + 1)); if (len > max) { max = len; start = i - (len - 1) / 2; } } return s.substring(start, start + max); } private int maxLen(String s, int l, int r) { while (l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) { l--; r++; } return r - l - 1; } }