7-7 最長對稱子串 (25 分)
阿新 • • 發佈:2018-11-28
對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定Is PAT&TAP symmetric?,最長對稱子串為s PAT&TAP s,於是你應該輸出11。
輸入格式:
輸入在一行中給出長度不超過1000的非空字串。
輸出格式:
在一行中輸出最長對稱子串的長度。
輸入樣例:
Is PAT&TAP symmetric?
輸出樣例:
11
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; bool compare(string s) { for(int i=0;i<s.length();i++) { if(s[i]==s[s.length()-i-1]) continue; else return false; } return true; } int main() { string s1,s2; int n=0,a=0; getline(cin,s1); for(int i=0;i<=s1.length()-1;i++) { for(int j=s1.length()-1;j>=i;j--) { if(s1[i]==s1[j]) { s2=s1.substr(i,j+1-i); if(compare(s2)) { n=s2.length(); if(n>a) a=n; } continue; } } } cout<<a<<endl; return 0; }