zoukankan      html  css  js  c++  java
  • nyoj 17 单调递增最长子序列

    描述

    求一个字符串的最长递增子序列的长度
    如:dabdbf最长递增子序列就是abdf,长度为4
    输入
    第一行一个整数0<n<20,表示有n个字符串要处理
    随后的n行,每行有一个字符串,该字符串的长度不会超过10000
    输出
    输出字符串的最长递增子序列的长度
    样例输入
    3
    aaa
    ababc
    abklmncdefg
    样例输出
    1
    3
    7

    AC代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 #define N 10006
     6 char s[N];
     7 int dp[N];
     8 int main()
     9 {
    10     int t;
    11     scanf("%d",&t);
    12     while(t--){
    13        scanf("%s",s);
    14        int len = strlen(s);
    15        dp[0]=1;
    16        for(int i=1;i<len;i++){
    17           int max_ = 0;
    18           for(int j=0;j<i;j++){
    19               if(s[i]>s[j] && max_<dp[j]){
    20                  max_ = dp[j];
    21               }
    22           }
    23           dp[i] = max_+1;
    24        }
    25        int ans = 0;
    26        for(int i=0;i<len;i++){
    27            ans = max(ans,dp[i]);
    28        }
    29        printf("%d
    ",ans);
    30     }
    31     return 0;
    32 }
  • 相关阅读:
    一些前端面试题
    CSS高度塌陷问题解决方案
    闭包
    作用域
    JS的预编译过程
    小技巧集合
    序选择器
    HTML初始结构
    剖析Vue原理&实现双向绑定MVVM
    Safari 3D transform变换z-index层级渲染异常
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/5435440.html
Copyright © 2011-2022 走看看