用JavaScript写力扣的5. 最长回文子串
时间: 2024-04-14 16:26:59 浏览: 226
你可以使用动态规划来解决力扣的5. 最长回文子串问题。下面是使用JavaScript编写的示例代码:
```javascript
function longestPalindrome(s) {
const n = s.length;
const dp = Array.from(Array(n), () => Array(n).fill(false));
let start = 0, maxLen = 1;
// 单个字符一定是回文串
for (let i = 0; i < n; i++) {
dp[i][i] = true;
}
// 判断长度为2的子串是否是回文串
for (let i = 0; i < n - 1; i++) {
if (s[i] === s[i + 1]) {
dp[i][i + 1] = true;
start = i;
maxLen = 2;
}
}
// 判断长度大于2的子串是否是回文串
for (let len = 3; len <= n; len++) {
for (let i = 0; i + len - 1 < n; i++) {
const j = i + len - 1;
if (s[i] === s[j] && dp[i + 1][j - 1]) {
dp[i][j] = true;
start = i;
maxLen = len;
}
}
}
return s.substring(start, start + maxLen);
}
```
你可以调用 `longestPalindrome` 函数,传入一个字符串作为参数,它将返回最长回文子串。请记住,这只是其中一种解决方案,可能不是最优的。
阅读全文