DNA序列(JAVA语言)
package 第三章习题;
/*
* 输入m个长度均为n的DNA序列,求一个DNA序列,到所有序列的总Hamming距离尽量小。
* 两个等长字符串的Hamming距离等于字符不同的位置个数,
* 例如,ACGT和GCGA的Hamming距离为2(左数第1, 4个字符不同)。
输入整数m和n(4≤m≤50, 4≤n≤1000),
以及m个长度为n的DNA序列(只包含字母A,C,G,T),
输出到m个序列的Hamming距离和最小的DNA序列和对应的距离。
如有多解,要求为字典序最小的解。
例如,对于下面5个DNA序列,最优解为TAAGATAC。
TATGATAC
TAAGCTAC
AAAGATCC
TGAGATAC
TAAGATGT
*/
import java.util.*;
public class DNA序列 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int m=in.nextInt();
int n=in.nextInt();
String s[]=new String[m];
for(int i=0;i<m;i++) {
s[i]=in.next();
}
String str = "";
for(int i=0;i<n;i++)
{
int A=0,C=0,G=0,T=0;
for(int j=0;j<m;j++)
{
if(s[j].charAt(i)=='A')A++;
else if(s[j].charAt(i)=='C')C++;
else if(s[j].charAt(i)=='G')G++;
else if(s[j].charAt(i)=='T')T++;
}
str+=max(A,C,G,T);
}
System.out.println(str);
}
private static char max(int A, int C, int G, int T) {
// TODO Auto-generated method stub
int a[]=new int[4];
a[0]=A;
a[1]=C;
a[2]=G;
a[3]=T;
int max=a[0];
for(int i=1;i<4;i++) {
if(a[i]>max) {
max=a[i];
}
}
if(max==A) {
return 'A';
}
else if(max==C) {
return 'C';
}
else if(max==G) {
return 'G';
}
else if(max==T) {
return 'T';
}
return ' ';
}
}
DNA序列(JAVA语言)的更多相关文章
- Java实现 LeetCode 187 重复的DNA序列
187. 重复的DNA序列 所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:"ACGAATTCCG".在研究 DNA 时,识别 DNA 中的重复序列有时会对 ...
- JAVA语言规范-线程和锁章节之同步、等待和通知
JAVA语言规范:线程和锁 1 同步 java编程语言提供了线程间通信的多种机制.这些方法中最基本的是同步化,此方法是使用监视器实现的.JAVA中每个对象与一个监视器相关联,一个线程可以加锁和解锁监视 ...
- 瘋耔java语言笔记
一◐ java概述 1.1 ...
- Java语言基础
Java 语言是面向对象的程序设计语言,Java 程序的基本组成单元是类,类体中又包括属性与方法两部分.每一个应用程序都必须包含一个main()方法,含有main()方法的类成为主类. 一.Java ...
- Java总结第一次//有些图片未显示,文章包含基础java语言及各种语句
一.java入门 1.Java入门学习框架: 2.常用的DOS命令: dir(directory) : 列出当前目录下的文件以及文件夹 md(make directory) : 创建目录 r ...
- Java语言编码规范(Java Code Conventions)
Java语言编码规范(Java Code Conventions) 名称 Java语言编码规范(Java Code Conventions) 译者 晨光(Morning) 简介 本文档讲述了Java语 ...
- 华为OJ平台——DNA序列
题目描述: 一个DNA序列由A/C/G/T四个字母的排列组合组成.G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度).在基因工程中,这个比例非 ...
- Java语言基本语法
Java语言基本语法 一.标识符和关键字 标识符 在java语言中,用来标志类名.对象名.变量名.方法名.类型名.数组名.包名的有效字符序列,称为“标识符”: 标识符由字母.数字.下划线.美元符号组成 ...
- 如何用Java语言向串口读写数据
原作者:赛迪网作者 shihuchen ,我在他的基础上进行了部分修改 [赛迪网讯]串口, RS-232-C(又称EIA RS-232-C,以下简称RS232)是在1970年由美国电子工业协会(EIA ...
随机推荐
- 求第n行杨辉三角(n很大,取模
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 typedef long long l ...
- 使用 js 实现十大排序算法: 冒泡排序
使用 js 实现十大排序算法: 冒泡排序 冒泡排序 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
- Python Tutorials
Python Tutorials Real Python https://realpython.com/ https://realpython.com/courses/ https://realpyt ...
- 找出 int 数组的平衡点 & 二叉树 / 平衡二叉树 / 满二叉树 / 完全二叉树 / 二叉查找树
找出 int 数组的平衡点 左右两边和相等, 若存在返回平衡点的值(可能由多个); 若不存在返回 -1; ``java int [] arr = {2,3,4,2,4}; ```js const ar ...
- linux bash which
linux bash which https://linuxize.com/post/linux-which-command/ Linux which command is used to ident ...
- 「NGK每日快讯」2021.2.11日NGK公链第100期官方快讯!
- 炒币亏损一万美金?不如抢SPC空投!
币圈的市场可以用风云变幻来形容,1月9日的时候比特币震荡,其他币种争先上涨,连平时都不涨的币种都拉出了10%-20%的领先涨幅,市场惊呼牛市来了,但喜悦还没有维持一天,1月10日(昨天)市场就走向另一 ...
- 备战春招!开源社区系统 Echo 超全文档助力面试
博主东南大学硕士在读,寒假前半个月到现在差不多一个多月,断断续续做完了这个项目,现在终于可以开源出来了,我的想法是为这个项目编写一套完整的教程,包括技术选型分析.架构分析.业务逻辑分析.核心技术点分析 ...
- Oracle kill locked sessions
select * from v$locked_object; select * from v$session where sid in (select session_id from v$locked ...
- LDAP + Samba 安装配置流程
LDAP + Samba 安装配置 基础环境:Ubuntu18.04 安装samba root@cky:~# apt install samba smbldap-tools -y 查看版本 root@ ...