本题目要求读入两个两个DNA序列A和B,其中A为人的DNA序列,B为病毒的DNA序列,然后判断A中是否出现病毒B(注:病毒的DNA序列为环状)。
输入格式:
输入一个整数n,然后输入n对DNA序列(每一DNA序列为一字符串,长度不超过10000)。
输出格式:
针对每一对DNA序列A和B,若B在A中出现,则输出Yes,否则输出No
输入样例:
在这里给出一组输入。例如:
2
AAAAAAAAACCCCGGGGTTTTTTTAGTCCCTTGGGAAATCGAAGTC GTCAAAAAAAAA
GGGGTTTTTCCCCCCAAAATTTCCCGGGTTTTTT TTTTGGGGTTT
输出样例:
在这里给出相应的输出。例如:
Yes
Yes
代码示例如下:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string s,m;
int flag=1,temp=0,p=0,n;
cin>>n;
while(n)
{
cin>>s>>m;
// lens=s.length();
for(int i=0;i<s.length();i++)
{
// cout<<s[i]<<endl;
for(int j=0;j<m.length();j++)
{
if(s[p]==m[j])
{
p++;
// cout<<p<<" ";
flag=1;
}
else
{
flag=0;
p=i;
}
}
// cout<<"i=="<<i<<endl;
if(flag)
{ if(n==1) cout<<"Yes";
else cout<<"Yes"<<endl;;
break;
}
}
if(!flag&&n!=1) cout<<"No"<<endl;
else if(!flag) cout<<"No";
n--;
}
return 0;
}