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

单调递增最长子序列

时间:2015-05-23 16:46:00      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

单调递增最长子序列

 
描述

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

输入
第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出
输出字符串的最长递增子序列的长度
样例输入
样例输出
1
3
7

 

Accepted

  1.    
  2. #include<stdio.h>  
  3. int length(char * s)  
  4. {  
  5.     int len[128] = {0}, i, t;  
  6.     for(; *s != ‘\0‘ && (t = len[*s - 1] + 1); s++)  
  7.     for(i = *s; i < 128 && len[i] < t; len[i++] = t);  
  8.     return len[127];  
  9. }  
  10. int main()  
  11. {  
  12.     int n;  
  13.     char s[10001];  
  14.     for(scanf("%d\n", &n); n--;)  
  15.     printf("%d\n", length(gets(s)));  
  16.     return 0;  
  17. }  
  18.          

单调递增最长子序列

标签:

原文地址:http://www.cnblogs.com/handsomecui/p/4524369.html

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