小紫书 习题 3-7(UVA 1368) DNA序列(DNA Consensus String)
2015-09-07 20:45
337 查看
水题,就对于所有字符串的同一个位置的字母,进行统计,找出出现次数最多中字典序最小的那个字母,并且记录次数,就可以做啦。
AC代码:
AC代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> using namespace std; struct num_str { int cnt; char c; }num[4]; bool cmp(num_str a, num_str b) { if (a.cnt < b.cnt) return true; else if (a.cnt == b.cnt&&a.c > b.c) return true; else return false; } int main() { int T; scanf("%d", &T); while (T--) { int m, n, sum = 0; scanf("%d%d", &m, &n); char DNA[50][1001]; char ans[1001]; for (int i = 0; i < m; i++) scanf("%s", DNA[i]); for (int i = 0; i < n; i++) { num[0] = { 0, 'A' }, num[1] = { 0, 'C' }, num[2] = { 0, 'G' }, num[3] = { 0, 'T' }; for (int j = 0; j < m; j++) { switch (DNA[j][i]) { case 'A': num[0].cnt++; break; case 'C': num[1].cnt++; break; case 'G': num[2].cnt++; break; case 'T': num[3].cnt++; break; } } sort(num, num + 4, cmp); ans[i] = num[3].c; sum += (m - num[3].cnt); } for (int i = 0; i < n; i++) printf("%c", ans[i]); printf("\n%d\n", sum); } // system("pause"); return 0; }
相关文章推荐
- 组件之间的信使----Intent
- LeetCode(61) Rotate List
- JSP/Servlet-----JSTL之I18N formatting标签库
- 格雷码递归算法
- php时间戳与字符串的相互转换
- 抽象类和接口小结
- Mysql 获取表的comment 字段
- 单臂路由的缺点
- jquery-lazyload延迟加载图片
- linux安装phpstorm出现 Startup Error: Unable to detect graphics environment
- LeetCode(61) Rotate List
- 今天终于有了自己的博客
- Cocos2dx引擎笔记——Cocos2d-x xml解析
- 第三十二天FragmentAdapter、数据存储、SQLite
- C压缩字符串中的空格
- Cocos2dx引擎笔记——Cocos2d-x 3.0 Json用法
- url应用
- 在现实编程中使用fluent风格
- 设计模式-facade模式
- 那些年,我们被耍过的bug——haslayout