#include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 10010 int MAX_namber(char *a) { int i,j,k,max; int b[10000]; k=strlen(a); for(i=k;i>=0; i--) //for(i=0;i<k;i++) //for(j=0;j<i; j++) {
//从前向后和从后向前 b[i]=1; for(j=i+1;j<k; j++) { if(a[i]<a[j]&&b[j]+1>=b[i]) b[i]=b[j]+1; //记录当前元素的最长子序列 } } max=0; for(i=0; i<k;i++) if(max<=b[i])max=b[i]; return max; } int main() { char a[MAX]; int N; scanf("%d",&N); getchar(); while(N--) { gets(a); if(N)printf("%d\n",MAX_namber(a)); else printf("%d",MAX_namber(a)); } system("pause"); return 0; }
点击打开链接
点击打开链接