码迷,mamicode.com
首页 > 其他好文 > 详细

单调递增最长子序列

时间:2016-06-17 23:47:09      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

  求一个字符串的最长递增子序列的长度,如:dabdbf最长递增子序列就是abdf,长度为4

输入描述

  第一行一个整数0<n<20,表示有n个字符串要处理,随后的n行,每行有一个字符串,该字符串的长度不会超过10000

输出描述

  输出字符串的最长递增子序列的长度

输入样例

3
aaa
ababc
abklmncdefg

输出样例

1
3
7

测试代码

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define N 10010
 4 
 5 char str[N];
 6 int maxLen[N];
 7 int main(void)
 8 {
 9     int n, len, i, j, max;
10 
11     scanf("%d", &n);
12     getchar();
13     while (n--)
14     {
15         fgets(str, N, stdin);
16         len = strlen(str);
17         maxLen[0] = 1;
18         for (i = 1; i < len; i++)
19         {
20             max = 0;
21             for (j = i - 1; j >= 0; j--)
22             {
23                 if (str[i] > str[j] && max < maxLen[j])
24                 {
25                     max = maxLen[j];
26                 }
27             }
28             maxLen[i] = max + 1;
29         }
30         max = maxLen[0];
31         for (i = 1; i < len; i++)
32         {
33             max = (maxLen[i] > max) ? maxLen[i] : max;
34         }
35         printf("%d\n", max);
36     }
37     return 0;
38 }

 

单调递增最长子序列

标签:

原文地址:http://www.cnblogs.com/maxin/p/5595332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!