DNA合成
DNA分子是以4种脱氧核苷酸为单位连接而成的长链,这4种脱氧核苷酸分别含有A,T,C,G四种碱基。碱基互补配对原则:A和T是配对的,C和G是配对的。如果两条碱基链长度是相同的并且每个位置的碱基是配对的,那么他们就可以配对合成为DNA的双螺旋结构。现在给出两条碱基链,允许在其中一条上做替换操作:把序列上的某个位置的碱基更换为另外一种碱基。问最少需要多少次让两条碱基链配对成功
输入描述:
输入包括一行: 包括两个字符串,分别表示两条链,两个字符串长度相同且长度均小于等于50。
输出描述:
输出一个整数,即最少需要多少次让两条碱基链配对成功
输入例子:
ACGT TGCA
输出例子:
0
1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 int DNA(const string str1, const string str2, int len); 6 int main() 7 { 8 string str1, str2, temp; 9 int result; 10 cin >> str1 >> str2; 11 int len = str1.length(); 12 result = DNA(str1, str2, len); 13 14 cout << result << endl; 15 16 17 18 19 return 0; 20 } 21 22 int DNA(const string str1, const string str2, int len) 23 { 24 int counter = 0; 25 for(unsigned int i = 0; i < len; i++) 26 { 27 switch(str1[i]) 28 { 29 case 'A': 30 { 31 if(str2[i] != 'T') 32 { 33 counter++; 34 break; 35 } 36 else 37 break; 38 39 } 40 case 'C': 41 { 42 if(str2[i] != 'G') 43 { 44 counter++; 45 break; 46 } 47 else 48 break; 49 50 } 51 case 'G': 52 { 53 if(str2[i] != 'C') 54 { 55 counter++; 56 break; 57 } 58 else 59 break; 60 61 } 62 case 'T': 63 { 64 if(str2[i] != 'A') 65 { 66 counter++; 67 break; 68 } 69 else 70 break; 71 72 } 73 74 } 75 } 76 return counter; 77 }