POJ1007解题报告

题意:

一个字符串有它的特征值,把特征值小的字符串放前面

难点:如何存储多个字符串,并且存储其特征值?

解决方法就是利用结构体

附上源代码及相关解释:

#include <iostream>
#include <string>
using namespace std;
struct DNA{ 
    string s;     //s存储字符串
    int value;    //value存储特征值
};

int main(){
    DNA dna[100];
    int n,line,i,k,t;
    cin>>n>>line;
    for(i=0;i<line;i++){       //这个for里面是计算特征值
        dna[i].value=0;
        cin>>dna[i].s;
        for(k=0;k<n-1;k++){
            for(t=k+1;t<n;t++){
                if(dna[i].s[k]>dna[i].s[t]) dna[i].value++;
            }
        }
    }
    for(i=0;i<line;i++){   //利用选择排序来输出结果
        for(k=i+1;k<line;k++){
            if(dna[i].value>dna[k].value){
                DNA temp;   //一定要整体代换
                temp = dna[i];
                dna[i] = dna[k];
                dna[k] = temp;
            }
        }
        cout<<dna[i].s<<endl;
    }
    return 0;
}

你可能感兴趣的:(String,namespace,源代码,存储,poj)