南阳17

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 
 5 int ans;
 6 char s[10005];
 7 char v[10005];
 8 
 9 void solve(int x)
10 {
11     if(!ans || v[ans] < s[x])
12         v[++ans] = s[x];
13     else
14     {
15         int i;
16         for(i=0; i<ans; ++i)//从v[0]开始,0一定小于字母。
17             if(v[i]<s[x] && v[i+1]>=s[x])
18             {
19                 v[i+1] = s[x];
20                 break;
21             }
22         if(i == ans)
23             v[i] = s[x];
24     }
25 }
26 
27 int main()
28 {
29     int n;
30     cin >> n;
31     while(n--)
32     {
33         ans=0;
34         memset(v,0,sizeof v);
35         cin >> s;
36         for(int i=0; s[i]!='\0'; ++i)
37             solve(i);
38         cout << ans << endl;
39     }
40 }

 

posted @ 2017-03-31 18:49  Posase  阅读(115)  评论(0编辑  收藏  举报