news 2026/5/5 1:42:05

C++课后习题训练记录Day73

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++课后习题训练记录Day73

1.练习项目:

问题描述

在生物学中,DNA 序列的相似性常被用来研究物种间的亲缘关系。现在我们有两条 DNA 序列,每条序列由 A、C、G、T 四种字符组成,长度相同。但是现在我们记录的 DNA 序列存在错误,为了严格满足 DNA 序列的碱基互补配对即 A - T 和 C - G,我们需要依据第一条 DNA 序列对第二条 DNA 序列进行以下操作:

  1. 选择第二条 DNA 序列的任意两个位置,交换他们的字符。

  2. 选择第二条 DNA 序列任意一个位置,将其字符替换为 A、C、G、T 中的任何一个。

需要注意的是:每个位置上的碱基只能被操作一次

你的任务是通过最小的操作次数,使第二条 DNA 序列和第一条 DNA 序列互补。并且已知初始两条 DNA 序列长度均为 NN。

输入格式

第一行包含一个整数 N,(1≤N≤103),表示 DNA 序列的长度。

接下来的两行,每行包含一个长度为 N 的字符串,表示两条 DNA 序列。

输出格式

输出一个整数,表示让第二条 DNA 序列和第一条 DNA 序列互补所需的最小操作次数。

2.选择课程

在蓝桥云课中选择课程《16届蓝桥杯省赛无忧班(C&C++ 组)4期》,选择第二章“基础算法”编程16并开始练习。

3.开始练习

(1)源码:
#include<bits/stdc++.h>
using namespace std;
map<char,int>mp={
{'A',0},
{'C',1},
{'G',2},
{'T',3}
};
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n,ans=0;
cin>>n;
string s1,s2;
cin>>s1>>s2;
for(int i=0;i<n;i++){
if(mp[s1[i]]+mp[s2[i]]!=3){
for(int j=i+1;j<n;j++){
if(mp[s1[i]]+mp[s2[j]]==3&&mp[s1[j]]+mp[s2[i]]==3){
swap(s2[i],s2[j]);
}
}
ans++;
}
}
cout<<ans<<'\n';
return 0;
}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 21:25:41

数据结构和算法的学习路径

- 无需先学数据结构的算法类型 像线性枚举、基础排序&#xff08;选择、冒泡、插入、计数&#xff09;、前缀和、双指针等算法&#xff0c;主要在数组上操作。 而数组作为基础语法的一部分&#xff0c;大部分学习者在学习编程基础时已掌握&#xff0c;因此学习这类算法前无需专…

作者头像 李华
网站建设 2026/5/3 8:51:23

基于单片机的煤气泄漏报警系统设计(仿真、程序、报告)

目录 系统概述核心硬件模块软件设计要点仿真实现实验报告内容扩展资源 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 基于单片机的煤气泄漏报警系统通过传感器检测环境中煤气浓度&#xff0c;超过阈值时触发声光报警并联动…

作者头像 李华
网站建设 2026/5/3 16:16:21

隐私无忧,掌控随心:ToDesk隐私屏功能全方位解读

在远程控制场景中&#xff0c;隐私保护始终是用户最为关注的核心问题。想象一下这些场景&#xff1a;你在办公室远程连接家中电脑处理私人事务时&#xff0c;同事从身旁经过&#xff1b;或者在家访问公司电脑时&#xff0c;家人恰好在屏幕前&#xff1b;又或是IT技术人员协助客…

作者头像 李华