输出最大回文数
#include <iostream> #include <string> #include <vector> #include <stdlib.h> using namespace std; int main() { string str; //int i=0,j=0; while (getline(cin,str)) { int R=1; for (int i=1;i<str.length()-1;i++) { //判断aba型回文数 for(int j=1;(i-j)>=0&&((i+j)<str.length())&&(str[i-j]==str[i+j]);j++) { if((j*2+1)>R) R=j*2+1; } //判断abba型回文数 for(int j=0;(i-j-1)>=0&&((i+j)<str.length())&&(str[i-1-j]==str[i+j]);j++) if((j+1)*2>R) R=(j+1)*2; } cout<<R<<endl; } system("pause"); return 0; }
重点在于两个循环的判断