1、题目很简单,求一
/*
Right:greenday
*/
#include<stdio.h>
#include<string.h>
int main(){
int num;
int max;
scanf("%d",&num);
while(num--){
char tring[10001];
int slenth[10001];
scanf("%s",tring);
//初始数组点值为1,至少长度为1
/*for(int i=0;i<strlen(tring);i++)
slenth[i]=1;
*/
//最大长度计数
max=1;
//slenth[0]=1;
for(int i=0;i<strlen(tring);i++){
slenth[i]=1;
for(int j=0;j<i;j++){
//判断字母的大小
if(tring[i]>tring[j]){
//动态规划
if(slenth[i]>(slenth[j]+1)){
slenth[i]=slenth[i];
}
else{
slenth[i]=slenth[j]+1;
}
}
}
if(slenth[i]>max)
max=slenth[i];
}
printf("%d\n",max);
}
return 0;
}
个字符串的最长递增子序列的长度,这是一道经典的基础最长子序列的题