NYOJ 17

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

#include 
#include 
#include 
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;
}


你可能感兴趣的:(NYOJ 17)