最长回文子串
概念
回文字符串(Palindrome String)是指正着读和反着读都一样的字符串。换句话说,从左到右读取和从右到左读取字符的顺序完全相同。回文字符串不要求所有的字符都对称,只需要正读和反读相同。
回文字符串的特性
- 对称性:回文字符串是完全对称的,即正反读的字符顺序一致。
- 长度:回文字符串可以是奇数长度或偶数长度。奇数长度的回文字符串的中间字符是“对称轴”,而偶数长度的回文字符串没有明确的中间字符。
- 空字符串:空字符串
""也被视为回文字符串。
示例
- 回文字符串:
"racecar":正着读和反着读都是"racecar"。"madam":正着读和反着读都是"madam"。"level":正着读和反着读都是"level"。
- 非回文字符串:
"hello":正着读是"hello",反着读是"olleh",不是回文字符串。"world":正着读是"world",反着读是"dlrow",也不是回文字符串。
判断一个字符串是否为回文
我们可以通过比较字符串与其反转后的字符串是否相等来判断一个字符串是否为回文。例如:
- 字符串
s如果满足s === s.split('').reverse().join(''),则该字符串是回文。
示例代码(JavaScript)
function isPalindrome(s) {
// 去除非字母数字字符,并转换为小写
const cleanedString = s.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
// 比较原始字符串和反转后的字符串是否相等
return cleanedString === cleanedString.split('').reverse().join('');
}
console.log(isPalindrome("A man, a plan, a canal, Panama")); // 输出: true
console.log(isPalindrome("hello")); // 输出: false
额外注意
- 在实际应用中,回文字符串的判断有时会忽略大小写和非字母数字字符,比如
"A man, a plan, a canal, Panama",去掉空格和标点符号后它仍然是回文字符串。
题目
给你一个字符串 s,找到 s 中最长的回文子串
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"

最低0.47元/天 解锁文章
4544

被折叠的 条评论
为什么被折叠?



