uva 10420 - List of Conquests
这题写的好丑啊,这题感觉就是烦
1.先要把单词读到一个数组,并记录次数
2.对单词进行排序
虽然只有0.022s,感觉写的太丑了
不过这题温习了一下vector的用法,还有qsort的用法
1 #include<iostream> 2 #include<string> 3 #include<vector> 4 #include<algorithm> 5 #include<stdio.h> 6 #include<stdlib.h> 7 #include<string.h> 8 #define MIN(a,b) ((a)>(b))?(b):(a) 9 using namespace std; 10 vector<string> v_word; 11 vector<int> v_num; 12 typedef struct Node{ 13 string s; 14 int num; 15 }Node; 16 int comp(const void *a,const void *b){ 17 string l1=*((string*)a); 18 string l2=*((string*)b); 19 return strcmp(l1.c_str(),l2.c_str()); 20 21 } 22 int main(){ 23 int n; 24 string l; 25 cin>>n; 26 getchar(); 27 while(n--){ 28 getline(cin,l); 29 int start=l.find(" ",0); 30 string word; 31 word.assign(l,0,start); 32 vector<string>::iterator result=find(v_word.begin(),v_word.end(),word); 33 if(result==v_word.end()){ 34 v_word.push_back(word); 35 v_num.push_back(1); 36 } 37 else{ 38 v_num[result-v_word.begin()]++; 39 } 40 } 41 vector<string>::iterator r1=v_word.begin(); 42 vector<int>::iterator r2=v_num.begin(); 43 Node* qu=new Node[v_num.size()]; 44 for(int i=0;r1!=v_word.end();i++,r1++,r2++){ 45 qu[i].s=*r1; 46 qu[i].num=*r2; 47 } 48 qsort(qu,v_num.size(),sizeof(qu[0]),comp); 49 for(int i=0;i<v_num.size();i++) 50 cout<<qu[i].s<<" "<<qu[i].num<<endl; 51 //system("pause"); 52 }
浙公网安备 33010602011771号