单调递增最长子序列

来源:互联网 发布:vscode eclipse 编辑:程序博客网 时间:2024/06/08 16:45

单调递增最长子序列

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
描述
求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入
第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出
输出字符串的最长递增子序列的长度
样例输入
3aaaababcabklmncdefg
样例输出
137
来源
经典题目
上传者
iphxer
#include<stdio.h>#include<string.h>int main(){    int n,stl,i,j,temp,nlen,len;    char a[10005],maxlen[10005];    scanf("%d\n",&n);    while(n--)    {        scanf("%s",&a);        stl=strlen(a);        maxlen[0]=1;        for(i=1;i<=stl;i++)        {            len=0;            for(j=0;j<i;j++)            {                if(a[i]>a[j])                {                    if(len<maxlen[j])                    {                        len=maxlen[j];                    }                }            }            maxlen[i]=len+1;        }        nlen=-10;        for(i=0;i<stl;i++)        {            if(nlen<maxlen[i])            {                nlen=maxlen[i];            }        }        printf("%d\n",nlen);    }}


0 0
原创粉丝点击