首页 > 代码库 > HustOJ - 1026

HustOJ - 1026

技术分享
 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 int main()
 5 {
 6     int n,i,j;
 7     string s,f;
 8     cin>>n;//输入行数 
 9     for (i=0;i<n;i++)
10     {
11         cin>>s;//循环输入每行数据 
12         int t=0;
13         f=s[0];//判断有几个和f相等的 
14         for (j=0;j<s.size();j++)
15         {
16             if (s[j]==f[0])//如果有一个和f的值相等 
17             {
18                 t++;//计算个数 
19                 if (j==s.size()-1)//如果最后一个 
20                 {
21                     if (t==1)cout<<f[0];//如果这个数据只有一个就输出,比如:A 
22                     else cout<<t<<f[0];//否则输出有几个这个数据,比如:AAAAAA输出6A 
23                 }
24             }
25             else
26             {//把最开始一组相同数据输出 
27                 if (t==1)cout<<f[0];
28                 else cout<<t<<f[0];
29                 //令f[0]等于下一组相同数据的开头 
30                 f[0]=s[j];
31                 t=1;//把计算个数归零 
32                 if (j==s.size()-1)//如果是最后一个,输出。否则执行上面的统计并输出。 
33                 {
34                     if (t==1)cout<<f[0];
35                     else cout<<t<<f[0];
36                 }
37             }
38         }
39         cout<<endl;//换行 
40         s="";//归零 
41     }
42     return 0;
43 }
1026 Encoding

ZOJ:2478

HustOJ - 1026