题目:
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:
输入: "cbbd"
输出: "bb"
解题:
public class Solution {
public string LongestPalindrome(string s) {
if(string.IsNullOrEmpty(s)||s.Length==1) return s;
int dlt =1,start=0;
for(int i=0;i<s.Length;i++){
for(int j=i-1;j<=i;j++){
int n=j;
int m=i+1;
while(n>=0&&m<s.Length&&s[m]==s[n]){
++m;
--n;
}
if(m!=i+1&&dlt<m-n-1)
{
dlt =m-n-1;
start=n+1;
}
}
}
return s.Substring(start,dlt);
}
}
思路:
本题采用轮询方式,对每个字符进行前后回文检测。
来源:
力扣(LeetCode)