您的位置:首页 > 编程语言 > Java开发

NYOJ 17 单调递增最长子序列

2013-04-03 16:58 176 查看
求一个字符串的最长递增子序列的长度

如:dabdbf最长递增子序列就是abdf,长度为4

输入

第一行一个整数0<n<20,表示有n个字符串要处理

随后的n行,每行有一个字符串,该字符串的长度不会超过10000

输出

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

样例输入

3

aaa

ababc

abklmncdefg

样例输出

1

3
7

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
while(n-->0){
String x=input.next();
int len=x.length();
int a[]=new int[len];
for(int i=0;i<len;i++)
a[i]=1;
for(int i=len-2;i>=0;i--){
for(int j=i+1;j<len;j++){
if(x.charAt(i)<x.charAt(j)&&a[i]<a[j]+1)
a[i]=a[j]+1;
}
}
int max=0;
for(int i=0;i<len;i++)
if(max<a[i])
max=a[i];
System.out.println(max);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java