#include <iostream>
#include <cstring>
using namespace std;
int dp(int cur);
char ch[10010];
int len;
int d[10010];
int main()
{
int T;
cin >> T;
while(T--)
{
cin >> (ch+1);
len = strlen(ch+1);
int max = 0;
memset(d, 0, sizeof(d));
for(int i = 1; i <= len; i++)
{
if(max < dp(i))
max = dp(i);
}
cout << max << endl;
}
}
int dp(int cur)
{
if(d[cur] > 0)
return d[cur];
d[cur] = 1;
for(int i = cur+1; i <= len; i++)
{
if( ch[cur] < ch[i] )
if(d[cur] < dp(i) + 1)
d[cur] = dp(i) + 1;
}
return d[cur];
}
南阳理工OJ_题目17 单调递增最长子序列
最新推荐文章于 2019-12-24 10:40:59 发布