首页 > 代码库 > 一道简单题

一道简单题

 

 

关键是要排序,如AABBBBC,然后可比较,当相同时将当前位置向后移,而不增加统计数目,不同时增加统计数目,再退出第二循环,这样就可以统计了。

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int n,m,i,j;
 8     char **a;
 9     cin>>n;
10     if(n<1||n>1000)
11         cin>>n;
12     else{
13         a=new char*[n];
14         for(i=0;i<n;i++){
15             a[i]=new char[20];
16             cin>>a[i];
17             strupr(a[i]);
18         }
19         for(i=0;i<n-1;i++)
20             for(j=0;j<n-i-1;j++)
21                 if(strcmp(a[j],a[j+1])>0)
22                     swap(a[j],a[j+1]);        
23         m=1;
24         for(i=0;i<n;i++)
25             for(j=i+1;j<n;j++)
26                 if(strcmp(a[i],a[j])!=0){
27                     m++;
28                     break;
29                 }
30                 else
31                     i++;
32     }
33     
34     cout<<endl<<m<<endl;
35     for(i=0;i<n;i++)
36         delete []a[i];
37     delete[] a;
38     return 0;
39 
40 }
View Code