LeetCode Q5
返回最长回文串
注意substr截取的用法
回文串最好从中间往两头去搜寻,注意考虑偶数以及奇数长度的情况;同时,对含有字符串条件判断的情况,注意下标是否越界,
public:
string longestPalindrome(string s) {
if(s.length()==0)
return "";
if(s.length()==1)
return s;
int start=0,max=0;
int st=0,en=0;
int l=0,r=0;
for(int i=0;i<s.length();i++)
{
st=i,en=i;
while(st>=0&&en<s.length()&&s[st]==s[en])
{
st--;en++;
}
st++;en--;
if(max<=(en-st+1))
{
start=st;
max=en-st+1;
}
l=i,r=i+1;
while(l>=0&&r<s.length()&&s[l]==s[r])
{
l--;r++;
}
l++;r--;
if(max<=(r-l+1)&&s[l]==s[r])
{
start=l;
max=r-l+1;
}
}
return s.substr(start,max);
}
};