ACM -- 算法小结(七)Phone list解题报告

      HDOJ -- Phone list解题报告

问题描述:给出一些电话号码,如果有共同前缀则输出NO,如果没有则输出YES。
解题关键:将电话号码进行字符串排序,相邻的电话号码进行比较

Sample Input
2
3
911
97625999
91125426
5
113

12340
123440
12345
98346
Sample Output
NO
YES

代码如下:

 1 #include <iostream>
 2 #include <string>
 3 #include <algorithm>
 4 using namespace std;
 5 string str[10001];
 6 int testnum;
 7 int num;
 8 int main()
 9 {
10     int i;
11     int num;
12     cin>>testnum;
13     while(testnum--)
14     {
15         cin>>num;
16         for(i=0;i<num;i++)
17         {
18             cin>>str[i];
19         }
20         sort(str,str+num);
21 
22         bool flag=false;
23         for(i=0;i<num-1;i++)
24         {
25             if(str[i]==str[i+1].substr(0,str[i].size()))
26             {
27                 flag=true;
28                 break;
29             }
30         }
31 
32         if(flag)            
33             printf("NO\n");        
34         else            
35             printf("YES\n");        
36     }    
37     return 0;
38 }

 

posted @ 2013-09-26 14:09  lmei  阅读(278)  评论(0编辑  收藏  举报