Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
WA用C++写的,比较水,看不出什么错,有没有测试用例啊?求大神指教#include <iostream> #include <string> #include <vector> using namespace std; int inversions (string str1); int main() { int str_len = 0; int rows = 0; cin >> str_len >> rows; vector<string> gene; string s1; int at = 0; while(at < rows) { cin >> s1; gene.push_back(s1); at++; } vector<int> sort_inv(rows); for(int t2 = 0; t2 < rows; t2++) { sort_inv[t2] = inversions(gene[t2]); //cout << sort_inv[t2] << endl ; } //Bubble Sort int i,j; int temp; for(i = 0; i < rows - 1; i++ ) { for(j = i + 1; j < rows; j++) { if( sort_inv[i] > sort_inv[j] ) { temp = sort_inv[j]; sort_inv[j] = sort_inv[i]; sort_inv[i] = temp; } } }//Bubble sort for(int i1 = 0; i1 < rows; i1++) { for(int i2 = 0; i2 < rows; i2++) { if(inversions(gene[i2]) == sort_inv[i1]) { cout << gene[i2] << endl; } } } //system("pause"); return 0; } int inversions(string str1) { int invT = 0; int invG = 0; int invC = 0; int inv = 0; for (string::iterator str_iter1 = str1.begin(); str_iter1 != str1.end(); str_iter1++) { if(*str_iter1 == 'T') { for (string::iterator str_iterT = str_iter1 + 1; str_iterT != str1.end(); str_iterT++) { if((*str_iterT == 'G' ) || (*str_iterT == 'C' ) || (*str_iterT == 'A' )) { invT++; } } }else if(*str_iter1 == 'G') { for(string::iterator str_iterG = str_iter1 + 1; str_iterG != str1.end(); str_iterG++) { if((*str_iterG == 'C' ) || (*str_iterG == 'A' )) { invG++; } } }else if(*str_iter1 == 'C') { for(string::iterator str_iterC = str_iter1 + 1; str_iterC != str1.end(); str_iterC++) { if(*str_iterC == 'A' ) { invC++; } } } inv += invT + invG + invC; invT = 0; invG = 0; invC = 0; }//for (string::iterator str_iter1; str_iter1 != str1.end(); str_iter1++) //cout << inv << endl; return inv; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator