描述
给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。所谓回文串,指左右对称的字符串。所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串。(注意:记得加上while处理多个测试用例)
输入描述:输入一个仅包含小写字母的字符串
输出描述:返回最长回文子串的长度
示例1
输入:cdabbacc
输出:4
说明:abba为最长的回文子串
#include#include #include using namespace std; int main() { string str; cin>>str; vector > arr(str.length()+1,vector (str.length()+1,0)); int maxlen=0; for(int i=1;i<=str.length();i++)//i在开头 { for(int j=str.length()-1;j>=0;j--)//j在结尾 { if(str[i-1]==str[j]) { arr[i][j]=arr[i-1][j+1]+1; if((i-1)-j+1==arr[i][j]) maxlen=max(maxlen,arr[i][j]); } } } cout << maxlen << endl; }



