#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int n,i,j,sum[10005];
char s[10005];
cin>>n;
while(n--){
cin>>s;
int l=strlen(s);
for(i=0;i<l;i++)
sum[i]=1;
for(i=0;i<l;i++){
for(j=i+1;j<l;j++){
if(s[j]>s[i] && sum[i]+1>sum[j]) //后面的大于前面的 && 基础值sum[i]+1大于可能值sum[j],就替换更新当前最大值sum[j]
sum[j]=sum[i]+1;
}
}
sort(sum,sum+l);
cout<<sum[l-1]<<endl;
}
return 0;
}
总结:不清楚了 自己跟着程序举个列子写写就明白了