首页 > 其他 > 详细

Poj 1007

时间:2017-02-03 13:29:10      阅读:240      评论:0      收藏:0      [点我收藏+]

主要是求字符串的逆序数和排序

对sort()函数的应用还要多熟悉才好

 1 #include<iostream>
 2 #include<algorithm> 
 3 using namespace std;
 4 
 5 struct DNA{
 6         int num;
 7         int inv;
 8     };
 9 
10 int inversion(string s){
11     int len=s.length();
12     int k=0;
13     int A=0,C=0,G=0,T=0;
14     for(int i=0;i<len;i++){
15             switch(s[i]){
16                 case A:{
17                     A++;
18                     k+=C;
19                     k+=G;
20                     k+=T;
21                     break;
22                 }
23                 case C:{
24                     C++;
25                     k+=G;
26                     k+=T;
27                     break;
28                 }
29                 case G:{
30                     G++;
31                     k+=T;
32                     break;
33                 }
34                 case T:{
35                     T++;
36                     break;
37                 }
38             }
39     }
40     return k;
41 }
42 
43 int cmp(DNA a,DNA b)  
44 {
45     return a.inv<b.inv;  //升序排列
46 }
47 
48 int main(){
49     int m,n;
50     cin>>m>>n;
51     string str[100];
52     DNA test[100];
53     for(int i=0;i<n;i++){
54         cin>>str[i];
55         test[i].num=i;
56         test[i].inv=inversion(str[i]);
57     }
58     sort(test,test+n,cmp);
59     for(int i=0;i<n;i++){
60         cout<<str[test[i].num]<<endl;
61     }
62 } 

 

Poj 1007

原文:http://www.cnblogs.com/marlenemizuno/p/6362439.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!