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 }