动态规划:用f[i][j]表示s[i~j]字符串是否是回文字符串。
int main() { string str; cin>>str; int n=str.size(); int max_len=0; int start=0; vector<vector<int>> f(n,vector<int>(n)); for(int i=0;i<n;i++) { f[i][i]=true; for(int j=0;j<i;j++) { f[j][i]=(s[i]==s[j])&&((i==j+1)||f[j+1][i-1]); if(f[j][i]&&(i-j+1>max_len)) { max_len=i-j+1; start=j; } } cout<<s.substr(start,max_len)<<endl; } }
时间: 2024-10-25 20:49:28