题目描述

输入
输出
样例输入
1
4
abab
样例输出
8
#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
int dp[55][55];
char t[55];
int main()
{
int T;scanf("%d",&T);
while(T--)
{
memset(dp,0,sizeof(dp));
int n;scanf("%d%s",&n,t+1);
int len=strlen(t+1),ans=0;
for(int i=1;i<=len;i++)
{
dp[i][i]=1;
for(int j=i-1;j>=1;j--)
{
dp[j][i]=(dp[j+1][i])%mod;
for(int k=j;k<=i;k++)
{
if(t[j]==t[k])
dp[j][i]=(dp[j][i]+dp[j+1][k-1]+1)%mod;
}
}
}
printf("%d\n",dp[1][len]%mod);
}
return 0;
}