最长升序子序列是最长公共子序列的变形。
只要将字符串升序排序后与原字符串求最长公共子序列即可。
以下提供一个工具类可以传入任何形式的数组。(添加新类型的数组时构造方法要自己加)。
package com.leejuen.string;
import java.lang.reflect.Array;
import java.util.Arrays;
public class LCS
{
private Integer len;
private Object str1;
private Object str2;
LCS(String a,String b)
{
str1 = a.toCharArray();
str2 = b.toCharArray();
}
LCS(char[] a,char[] b)
{
str1 = a;
str2 = b;
}
LCS(int[] a,int[] b)
{
str1 = a;
str2 = b;
}
public int getLCS()
{
if(len==null) ini();
return len;
}
private void ini()
{
int str1_len = Array.getLength(str1);
int str2_len = Array.getLength(