sicily DNA matching
来源:互联网 发布:电视软件哪个资源多 编辑:程序博客网 时间:2024/05/22 14:39
题目要求为找到DNA匹配的个数。开始打算将DNA放到栈中,依次匹配并删除栈顶元素,后来在写的过程中发现无法删除栈内的匹配元素。在网上找了下相关答案,感觉用set容器的效果很好,可以对元素排序且删去重复元素。具体实现方法为先将输入的DNA序列变换到与其相对的序列,这样在下文中寻找相同序列即可。然后利用一个迭代器,寻找set中是否存在相同序列,若存在,则删除相同元素(删除其迭代器)并将其个数加一。若不存在,则将新输入的序列插入到set容器内【注意只有当容器内无对应元素时才插入,不是所有的输入都插入!!】
具体实现代码如下。
#include<iostream>#include<string>#include<set>using namespace std;int main() {int test_number;cin>>test_number;while (test_number--) {int number, count = 0;string s, temp;set<string>Set;set<string>::iterator it;cin>>number;while (number--) {cin>>s;temp = s;for (int i = 0 ; i < s.size() ; i++) {if (s[i] == 'A')temp[i] = 'T';else if (s[i] == 'T')temp[i] = 'A';else if (s[i] == 'C')temp[i] = 'G';else if (s[i] == 'G')temp[i] = 'C';}it = Set.find(temp);if (it != Set.end()) { // set内会对元素自动排序count++;Set.erase(it);}elseSet.insert(s);}cout<<count<<endl;}return 0;}
0 0
- sicily 1035 DNA matching
- sicily--1035. DNA matching
- Sicily 1035. DNA matching
- sicily 1035. DNA matching
- sicily 1035. DNA matching
- sicily 1035.DNA Matching
- sicily DNA matching
- Sicily 1035. DNA matching
- Sicily 1035 DNA matching
- Sicily 1035 DNA matching
- sicily 1035. DNA matching
- [sicily]1035. DNA matching
- sicily 1035. DNA matching
- 【Sicily】1035. DNA matching
- Sicily DNA matching
- [sicily online]1035. DNA matching
- Sicily 1035. DNA matching题解
- Sicily.1035. DNA matching(字符串匹配)
- 黑马程序员——字符串的对称问题
- 有关Filter(过滤器)实现禁用缓存和使用缓存操作的实现
- 关于android读取用户号码,手机串号,SIM卡序列号
- 修改openssh源代码,添加流量统计并发送到远程功能
- 学习JQuery - 7
- sicily DNA matching
- 动态库和共享库区别
- Android Activity 生命周期的透彻理解
- [算法导论]第八章《线性时间排序》
- CSV文本数据如何导入oracle
- Perl5 split 函数的使用详细讲解
- scanf()格式说明符
- C++编程规范之37:公用继承即可替换性。继承,不是为了重用,而是为了被重用
- tar.gz与zip的区别