データ構造——最長対称サブストリング
979 ワード
この文字列の中で一番長い対称シーケンスを探させます.
テーマリンク:https://pintia.cn/problem-sets/1052335451183816704/problems/1052335487275802632#p-1
思考:各対称中心を列挙して、判断する時は対称で、文字列の長さはただ1000だけなので、時間が超過することはなくて、比較的に簡単な模擬問題です.
唯一の注意はここの対称方式には二種類があります.一つはaacaで、一つはaaccaaです.
ACコードは以下の通りです.
テーマリンク:https://pintia.cn/problem-sets/1052335451183816704/problems/1052335487275802632#p-1
思考:各対称中心を列挙して、判断する時は対称で、文字列の長さはただ1000だけなので、時間が超過することはなくて、比較的に簡単な模擬問題です.
唯一の注意はここの対称方式には二種類があります.一つはaacaで、一つはaaccaaです.
ACコードは以下の通りです.
#include
using namespace std;
const int maxn=2000;
const int INF=0x3f3f3f3f;
char s[maxn];
int main()
{
int len=0;
char ch;
while(scanf("%c",&ch)!=EOF)
{
s[len++]=ch;
}
int p1=1,p2=0;
for(int i=1;i=0;j--)
{
if(s[j]==s[mid++]) t+=2;
else break;
}
p1=max(p1,t);
}
for(int i=1;i=0;j--)
{
if(s[j]==s[mid++]) t+=2;
else break;
}
p2=max(p2,t);
}
printf("%d",max(p2,p1));
return 0;
}