NYOJ 17

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
描述
求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入
第一行一个整数0
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出
输出字符串的最长递增子序列的长度
样例输入
3 aaa ababc abklmncdefg
样例输出
1 3 7
题目很经典,学习一下吧。

#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
const int MAXN = 10000 + 5;
int main(){
    int n;
    scanf("%d", &n);
    while(n--){
        string s;
        cin >> s;
        int i, j, ans = 0, len = s.length();
        for(i=0; i
            for(j=0; j
                if(s[j]>=s[i]){
                    s[j] = s[i];
                    break;
                }
            }
            if(j==ans){
                s[j] = s[i];
                ans++;
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}


posted @ 2013-02-08 20:31  ChrisZZ  阅读(140)  评论(0编辑  收藏  举报