重复的DNA序列

桃扇骨 2024-03-22 12:43 164阅读 0赞

题目描述
DNA序列 由一系列核苷酸组成,缩写为 ‘A’, ‘C’, ‘G’ 和 ‘T’.。
例如,“ACGAATTCCG” 是一个 DNA序列 。
在研究 DNA 时,识别 DNA 中的重复序列非常有用。
给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次的 长度为 10 的序列(子字符串)。按 从左至右遍历顺序 返回答案。

输入样例复制

  1. s=”AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT
  2. AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT

输出样例复制

  1. [AAAAACCCCC,CCCCCAAAAA]

中间以 ,分割,末尾无换行
提示:
0 <= s.length <= 105
s[i]==‘A’、‘C’、‘G’ or ‘T’

  1. #include<iostream>
  2. #include<set>
  3. #include<string.h>
  4. using namespace std;
  5. int main()
  6. {
  7. string str;
  8. set<string>s;
  9. cin>>str;
  10. for(int i=0;i<=str.size()-10;i++)
  11. {
  12. for(int j=i+1;j<=str.size()-10;j++)//双重循环进行迭代判断字串是否相同
  13. {
  14. if(str.substr(i,10)==str.substr(j,10))//利用substr函数,用法可看[substr详解](http://t.csdn.cn/3oEZm)
  15. {
  16. s.insert(str.substr(i,10));//利用set集合内元素不重复的性质,set具体用法可看[C++中set使用详细说明](http://t.csdn.cn/MqnYv)
  17. break;
  18. }
  19. }
  20. }
  21. if(s.size())
  22. {
  23. cout<<"[";
  24. set<string>::iterator it;
  25. for(it=s.begin();it!=s.end();it++)
  26. {
  27. cout<<*it;
  28. if(it!=prev(s.end()))
  29. {
  30. cout<<",";
  31. }
  32. }
  33. cout<<"]";
  34. }
  35. return 0;
  36. }

发表评论

表情:
评论列表 (有 0 条评论,164人围观)

还没有评论,来说两句吧...

相关阅读

    相关 重复DNA序列

    题目描述 DNA序列 由一系列核苷酸组成,缩写为 ‘A’, ‘C’, ‘G’ 和 ‘T’.。 例如,“ACGAATTCCG” 是一个 DNA序列 。 在研究 DNA