本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。
答案:
这是qklbishe.com第6713 篇笔试面试资料
提供答案分析,通过本文《给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。
答案:
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param s string字符串
* @return string字符串
*/
public String longestPalindrome (String s) {
// write code here
boolean[][] dp = new boolean[s.length()][s.length()];
int left = 0, right = 0, len = 0;
for (int i = 0; i < s.length(); ++i) {
for (int j = 0; j < i; ++j) {
dp[j][i] = (s.charAt(i) == s.charAt(j) && (i – j < 2 || dp[j + 1][i – 1]));
if (dp[j][i] && len < i – j + 1) {
len = i – j + 1;
left = j;
right = i;
}
}
dp[i][i] = true;
}
return s.substring(left, right + 1);
}
}
文章部分来自互联网,侵权联系删除
www.qklbishe.com