DNA序列修正——HashMap应用

题目链接:1.DNA序列修正 - 蓝桥云课 (lanqiao.cn)

 利用HashMap的特性,将字母匹配转换成数字匹配

                        A + T = 0 + 1 = C + G = 1 + 2 = 3

另外,Java中没有交换(swap)函数,需要自己进行编写。

程序代码:

package lanqiao;import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;/*** 2023/11/29*/
public class lanqiao3904_DNA序列修正 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n=scan.nextInt();//DNA序列长度char[] a=new char[n];char[] b=new char[n];a=scan.next().toCharArray();//两条DNA序列b=scan.next().toCharArray();Map<Character,Integer> map=new HashMap<>();map.put('A',0);//可以保证,相匹配的字符加和恒为3map.put('C',1);//A——T        0+3=3map.put('G',2);//C——G       1+2=3map.put('T',3);int ans=0;for (int i=0;i<n;i++){if (map.get(a[i])+map.get(b[i])!=3){//相加不为3,则说明两个字符不匹配,需要向后寻找进行交换for (int j=i+1;j<n;j++){if (map.get(a[i])+map.get(b[j])==3||map.get(a[j])+map.get(b[i])==3){//两种相加和为3的可能swap(b,i,j);//如果i后面有匹配字符,则进行一次交换}}ans++;}}System.out.println("使DNA互补的最小操作次数为:"+ans);}public static void swap(char[] c,int x,int y){//将 c[x] 与 c[y] 进行交换char temp=c[x];c[x]=c[y];c[y]=temp;}
}

运行结果: 

5
ACGTG
ACGTC
使DNA互补的最小操作次数为:2进程已结束,退出代码为 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/753581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电路笔记】-MOSFET作为开关

MOSFET 作为开关 文章目录 MOSFET 作为开关1、概述2、MOSFET特性曲线2.1 截住区域2.2 饱和区域3、MOSFET作为开关的示例4、功率MOSFET电机控制5、P沟道MOSFET作为开关6、互补MOSFET作为开关电机控制器当 MOSFET 在截止区和饱和区之间工作时,MOSFET 是非常好的电子开关,用于控…

洛谷 【深基16.例1】淘汰赛

【深基16.例1】淘汰赛 题目描述 有 2 n 2^n 2n&#xff08; n ≤ 7 n\le7 n≤7&#xff09;个国家参加世界杯决赛圈且进入淘汰赛环节。已经知道各个国家的能力值&#xff0c;且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛&am…

C语言简单题(指针篇)3个数有序输出

使用指针&#xff0c;输入三个数&#xff0c;输出由小到大的顺序 /* 用指针方法编写一个程序&#xff0c;输入3个数&#xff0c;将他们按由小到大的顺序输出 */ #include<stdio.h> int sort(int *a,int *b,int *c){ int temp; if(*a > *b){ temp…

mybatis项目中配置sql提示

2023版的idea好像内置了这个功能。 第一步&#xff1a; 第二步&#xff1a;第一步完成后user会爆红&#xff0c;这时我们需要连接数据库。

什么是web workers?使用场景?

Web Workers 是 HTML5 提供的一项技术&#xff0c;用于在 Web 应用程序中创建多线程环境。它允许在后台运行脚本&#xff0c;独立于主线程&#xff0c;以提高 Web 应用程序的性能和响应能力。 通常情况下&#xff0c;JavaScript 在浏览器中运行在单个线程中&#xff0c;称为主…

TypeScript中的 K、T 、V

文章目录 前言泛型类型链接关系K、T、V 含义自动类型推断泛型的应用场景容器类和数据结构函数和方法接口和类类型约束和扩展常用的工具类型 前言 在 TypeScript 的泛型里经常会碰到一些字母&#xff0c;比如 K、T、V&#xff0c;是不是觉得很奇怪&#xff1f; 泛型类型 图中的…

【SysBench】sysbench-1.20 命令速查表

1、通用语法 The general command line syntax for sysbench is: sysbench [options]... [testname] [command] testname is an optional name of a built-in test (e.g. fileio, memory, cpu, etc.), or a name of one of the bundled Lua scripts (e.g. oltp_read_only), or…

ChatGPT提示词方法的原理

关于提示词&#xff0c;我之前的一些文章可以参考&#xff1a; 【AIGC】AI作图最全提示词prompt集合&#xff08;收藏级&#xff09;https://giszz.blog.csdn.net/article/details/134815245?ydrefereraHR0cHM6Ly9tcC5jc2RuLm5ldC9tcF9ibG9nL21hbmFnZS9hcnRpY2xlP3NwbT0xMDExL…

力扣● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇

● 583. 两个字符串的删除操作 注意审题&#xff1a; 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 删除最少的字符使两者相同&#xff0c;说明留下来的就是最大公共子序列。不要求…

探索大数据时代的决策利器:如何有效应对海量数据?

随着信息技术的快速发展,大数据时代已经到来,海量数据成为了我们生活和工作中不可忽视的一部分。这些数据来自各个方面:社交媒体、传感器、网络交易、移动设备等,每天都在以惊人的速度增长。但是,面对如此庞大的数据量,我们该如何有效地应对呢?本文将探索大数据时代的决…

13 秒插入 30 万条数据,这才是 Java 批量插入正确的姿势!

本文主要讲述通过MyBatis、JDBC等做大数据量数据插入的案例和结果。 30万条数据插入插入数据库验证 实体类、mapper和配置文件定义 User实体 mapper接口 mapper.xml文件 jdbc.properties sqlMapConfig.xml 不分批次直接梭哈 循环逐条插入 MyBatis实现插入30万条数据 J…

代码资源集合

代码资源 通信QPSKOQPSKMSK信道编码GMSK 雷达LFM及干扰技术LFM射频噪声干扰噪声调幅干扰噪声调频干扰噪声调相干扰固定移频干扰间歇采样干扰 SAR成像RD算法CS算法wk算法 SAR干扰技术射频噪声干扰调幅噪声干扰调频噪声干扰调相噪声干扰噪声卷积干扰乘积干扰移频干扰 DOA估计功率…

Linux:vim详解及使用

一、什么是vim vim的三种模式(其实有好多模式&#xff0c;目前掌握这3种即可),分别是命令模式&#xff08;command mode&#xff09;、插 入模式&#xff08;Insert mode&#xff09;和底行模式&#xff08;last line mode&#xff09;&#xff0c;各模式的功能区分如下&#…

电学基础知识

目录 电流 前言 电流的产生 电流的单位安培&#xff08;A&#xff09; 电路和电池 开路和闭路 电灯泡原理 对电池容量的理解 毫安时 毫瓦时 直流电和交流电 AC交流电 DC直流电 直流电和交流电对比 电压 对电器的电压和电流的理解 电阻 电压电阻电子的关系 欧…

python--剑指offer--中等--07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如&#xff0c;给出 前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树&#xff1a; 3/ 9 20 / 15 7 …

手把手带你入门学习TensorFlow

1. TensorFlow的来源及原理 TensorFlow是由Google Brain团队开发的开源深度学习框架&#xff0c;于2015年首次发布。它是一个功能强大、灵活且易于使用的工具&#xff0c;被广泛应用于机器学习和深度学习领域。TensorFlow的设计理念是通过构建计算图来表示复杂的数学运算和神经…

47.全排列II

// 定义一个Solution类&#xff0c;用于解决给定不重复整数数组的全排列问题 class Solution {// 初始化结果集&#xff0c;用于存放所有不重复的全排列组合List<List<Integer>> result new ArrayList<>();// 初始化路径变量&#xff0c;用于暂存当前递归生…

Vulnhub靶机:Kioptrix_Level1.3

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;192.168.56.101&#xff09; 靶机&#xff1a;Kioptrix_Level1.3&#xff08;192.168.56.109&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vul…

Springboot自动校验@NotBlank@NotNull@NotEmpty

1、依赖问题&#xff1a; 查看搭建的SpringBoot项目中 NotEmpty 是否可以引用&#xff0c;查询资料发现从SpringBoot 2.3.0之后放弃了默认对javax.validation 的支持。 <dependency> <groupId>org.springframework.boot</groupId> …

2024.3.18

1、试编程 封装一个动物的基类&#xff0c;类中有私有成员:姓名&#xff0c;颜色&#xff0c;指针成员年纪再封装一个狗这样类&#xff0c;共有继承于动物类&#xff0c;自己拓展的私有成员有:指针成员:腿的个数(整型intcount)&#xff0c;共有成员函数:会叫:void speak() 要求…