题目描述
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的 DNA 进行比对,以判断该比对的 DNA 是否具有相关性。
现比对两条长度相同的 DNA 序列。首先定义两条 DNA 序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条 DNA 序列是相关的,否则不相关。
输入格式
有三行。第一行为一个 [0,1] 范围内实数,表示用来判定出两条 DNA 序列是否相关的阈值,随后 2 行是两条 DNA 序列(长度不大于 500)。
输出格式
若两条 DNA 序列相关,则输出"yes",否则输出"no"。
Sample Input
0.85
ATCGCCGTAAGTAACGGTTTTAAATAGGCC
ATCGCCGGAAGTAACGGTCTTAAATAGGCC
Sample Output
yes
思路
就是输入两个字符串,看相似度,如果相似度高于给出的浮点数的话,输出"yes",否则输出"no"。
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
double n;
string s1, s2;
while(cin >> n)
{
cin >> s1 >> s2;
int len = s1.length(), cnt = 0;
for(int i = 0; i < len; i++)
if(s1[i] == s2[i]) cnt++;
if(cnt * 1.0 / len > n) cout << "yes" << endl;
else cout << "no" << endl;
}
return 0;
}