合肥网站优化,百度一下app下载安装,网站设计咨询网站,西安建站模板文章目录 题目描述题解思路题解代码题解链接 题目描述 题解思路
从中心点先寻找和中心点相等的左右端点#xff0c;在基于左右端点进行往外扩散#xff0c;直至左右端点不相等或者越界#xff0c;然后左右端点这个范围内就是我们找寻的回文串#xff0c;我们遍历中心点在基于左右端点进行往外扩散直至左右端点不相等或者越界然后左右端点这个范围内就是我们找寻的回文串我们遍历中心点就能执行上述流程就能查询所有的回文串我们只需要取其中的最长的回文子串即可
题解代码
impl Solution {pub fn longest_palindrome(s: String) - String {let s s.as_bytes();let mut left 0;let mut right 0;let mut i 0;while i s.len() {let mut l i;let mut r i;while l 0 s[l - 1] s[i] {l - 1;}while r 1 s.len() s[r 1] s[i] {r 1;}let mut offset 1;while l offset r offset s.len() s[l - offset] s[r offset] {offset 1;}offset - 1;if r - l (offset 1) right - left {left l - offset;right r offset;}i r 1;}String::from_utf8(s[left..right 1].to_vec()).unwrap()}
}题解链接
https://leetcode.cn/problems/longest-palindromic-substring/