最长回文子串
提供一个字符串s,找到s中最长的回文子串。
代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 提供一个字符串s,找到s中最长的回文子串
function long(s) {
if (s.length < 2) { // 如果字符串长度小于2,直接返回原字符串
return s;
}
let maxLen = 1; start = 0;
function bijiao(left, right) {
// 判断左边和右边是否越界,同时最左边的字符是否等于最右边的字符
while (left >= 0 && right < s.length && s[left] == s[right]) {
// 判断是否需要更新回文字符串最大长度以及最大字符串的起始位置
if (right - left + 1 > maxLen) {
maxLen = right - left + 1;
start = left;
}
left--;
right++;
}
}
for (let i = 0; i < s.length; ++i) {
bijiao(i, i + 1);
bijiao(i - 1, i + 1);
}
return s.substring(start, start + maxLen); // substring() 方法用于提取字符串中介于两个指定下标之间的字符。
}
console.log(long("pppppooopppppppp")); // 打印 pppppoooppppp
</script>
</body>
</html>