【C++】 —— 笔试刷题day_16

刷题_day16,继续加油啊

一、字符串替换

题目解析

在这里插入图片描述

这道题是一道简单的字符题目,题目给我们一个字符串A,和n表示A字符串的长度,再给出一个字符数组argm表示arg中是数据个数。

然我们在字符串A中找到%s然后替换成arg中的字符;

算法分析

这道题就非常简单简单了,我们直接在A中寻找%s,然后将arg中的字符替换即可。

当然这里没有必要在原字符串中进行操作,创建一个新的字符串ret即可。

这里需要注意:

A字符串中的%s的个数可能会小于arg中的字符数量,

代码实现

class StringFormat {
public:string formatString(string A, int n, vector<char> arg, int m) {// write code herestring ret;int sz = A.size();int k = 0;for(int i=0,j=1;j<sz;i++,j++){if(A[i]!='%' || A[j] !='s')ret+=A[i];else{ret+=arg[k++];i++;j++;}}if(A[sz-2]!='%')ret+=A[sz-1];while(k<arg.size())ret+=arg[k++];return ret;}
};

二、神奇数

题目解析

在这里插入图片描述

这道题,给定我们一个区间[l , r],让我们找出来其中神奇数的个数;

**神奇数:**对于一个数x,使用它的某两位组成的一个两位数是一个质数,那这个数就是神奇数。

算法分析

对于这道题,思路就简单明了了,你就是暴力枚;枚举出来所有可能的两位数,判断是否是质数即可。

遍历区间[l , r],判断是否是神奇数,是就计数加一;

判断是否是神奇数:先将数的每一位存到一个数组中,然后枚举所有可能的两位数,判断这两位数是否是质数;如果是,这个数就是神奇数;如果不是,那就继续枚举,直到枚举完所有的。(枚举完所有的就表示这个数不是神奇数

判断是否是质数:(首先进行一下判断,如果x<2,这个数就不是质数)从2开始判断x是否能被整除,如果能那就不是质数,如果不能就继续遍历;遍历到sqrt(x)时遍历结束;(遍历到sqrt(x)就表示这个数是质数

代码实现

#include <iostream>
#include <vector>
#include<cmath>
using namespace std;bool isprim(int x)
{if(x<2) return false;for(int i = 2;i<=sqrt(x);i++){if(x % i == 0)return false;}return true;
}
int check(int n)
{//将n的每一位存到数组中vector<int> num;while(n){num.push_back(n%10);n/=10;}for(int i = 0;i<num.size();i++){for(int j = 0;j<num.size();j++){if(i!=j && num[i] != 0)if(isprim(num[i]*10 + num[j]))return 1;}}return 0;
}int main() {int l,r;cin>>l>>r;int ret = 0;for(int i = max(10,l);i<=r;i++){ret+=check(i);}cout<<ret<<endl;return 0;
}

三、DNA序列

题目解析

在这里插入图片描述

这里题目给我们应该字符串str,其中有A/C/G/T组成;还给了一个n

让我们在str中找到一个子串,这个子串长度为n,要求我们这个子串中有尽可能多的C/G

最后要我们输出这个子串(子串中C/G尽可能多)

算法分析

这道题,相信对题目比较敏感的朋友已经想到了做法,那就是滑动窗口

这里就不过多叙述了,直接来看思路:

这里呢 ,我们要找尽可能多数量的C/G,我们就需要一个count来记录区间[left , right]C/G的个数;然后用maxcount;来记录当前最多的C/G的数量,用于比较;

题目要求我们最后输出子串,所以我们记录一下最后子串的起始位置begin和长度len

  • 进窗口:如果A[right] == 'C' || A[right] == Gcount++
  • 判断:如果right - left - 1 > n,就表示当前区间长度大于n了,就要出窗口操作;
  • 出窗口:如果A[left] == 'C' || A[right] == 'G',就count--
  • **更新结果:**出窗口操作之后,如果区间长度等于n,并且当前区间内count小于maxcount,那就更新结果。

在这里插入图片描述

代码实现

#include <iostream>
using namespace std;int main() {string str;int n;cin>>str>>n;int begin = -1,count = 0,maxcount = 0;for(int left = 0,right =0;right<str.size();right++){if(str[right]=='C'||str[right]=='G')count++;while(right - left +1 > n){if(str[left] == 'C' || str[left] == 'G')count--;left++;}if(count > maxcount){begin = left;maxcount = count;}}cout<<str.substr(begin,n)<<endl;return 0;
}

到这里本篇文章就结束了,继续加油

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2oul0hvapjsws

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

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

相关文章

n8n 本地部署及实践应用,实现零成本自动化运营 Telegram 频道(保证好使)

n8n 本地部署及实践应用&#xff0c;实现零成本自动化运营 Telegram 频道&#xff08;保证好使&#xff09; 简介 n8n 介绍 一、高度可定制性 二、丰富的连接器生态 三、自托管部署&#xff08;本地部署&#xff09; 四、社区驱动 n8n 的部署 一、前期准备 二、部署步…

flutter 桌面应用之系统托盘

系统托盘(Tray) 系统托盘就是状态栏里面对应的图标点击菜单 主要有两款框架 框架一句话评价tray_manager轻量、简单、易用&#xff0c;适合常规托盘功能system_tray更底层、更强大、支持图标/菜单/消息弹窗等更多功能&#xff0c;但复杂度更高 &#x1f9f1; 基础能力对比 …

修改idea/android studio等编辑器快捷注释从当前行开头的反人类行为

不知道什么时候开始&#xff0c;idea编辑的快捷注释开始从当前行开头出现了&#xff0c;显得实在是难受&#xff0c;我只想让在当前行代码的部份开始缩进两个字符开始&#xff0c;这样才会显得更舒服。不知道有没有强迫症的猴子和我一样&#xff0c;就像下面的效果&#xff1a;…

MySQL慢查询全攻略:定位、分析与优化实战

&#x1f680; MySQL慢查询全攻略&#xff1a;定位、分析与优化实战 #数据库优化 #性能调优 #SQL优化 #MySQL实战 一、慢查询定位&#xff1a;找到性能瓶颈 1.1 开启慢查询日志 -- 查看当前配置 SHOW VARIABLES LIKE %slow_query%; -- 动态开启&#xff08;重启失效&…

当原型图与文字说明完全不同时,测试要怎么做?

当测试遇上左右手互搏的需求&#xff0c;怎么办&#xff1f; "这个弹窗样式怎么和文档写的不一样&#xff1f;"、"按钮位置怎么跑到左边去了&#xff1f;"——根据Deloitte的调查&#xff0c;62%的项目存在原型图与需求文档不一致的情况。这种"精神分…

关于量化交易在拉盘砸盘方面应用的部分思考

关于“砸盘”的深层解析与操盘逻辑 ​​一、砸盘的本质与市场含义​​ ​​砸盘​​指通过集中抛售大量筹码导致价格快速下跌的行为&#xff0c;其核心目标是​​制造恐慌、清洗浮筹或实现利益再分配​​。不同场景下的砸盘含义不同&#xff1a; ​​主动砸盘&#xff08;操控…

【项目管理】第12章 项目质量管理-- 知识点整理

项目管理-相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应:第6章-第19章 第6章 项目管理概论 4分第13章 项目资源管理 3-4分第7章 项目…

一个好看的图集展示html页面源码

源码介绍 一个好看的图集展示html页面源码&#xff0c;适合展示自己的作品&#xff0c;页面美观大气&#xff0c;也可以作为产品展示或者个人引导页等等 源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c; 双击html文件可以本地运行…

2021第十二届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

记录刷题的过程、感悟、题解。 希望能帮到&#xff0c;那些与我一同前行的&#xff0c;来自远方的朋友&#x1f609; 大纲&#xff1a; 1、空间-&#xff08;题解&#xff09;-字节单位转换 2、卡片-&#xff08;题解&#xff09;-可以不用当组合来写&#xff0c;思维题 3、直…

LabVIEW 中 JSON 数据与簇的转换

在 LabVIEW 编程中&#xff0c;数据格式的处理与转换是极为关键的环节。其中&#xff0c;将数据在 JSON 格式与 LabVIEW 的簇结构之间进行转换是一项常见且重要的操作。这里展示的程序片段就涉及到这一关键功能&#xff0c;以下将详细介绍。 一、JSON 数据与簇的转换功能 &am…

蓝桥杯大模板

init.c void System_Init() {P0 0x00; //关闭蜂鸣器和继电器P2 P2 & 0x1f | 0xa0;P2 & 0x1f;P0 0x00; //关闭LEDP2 P2 & 0x1f | 0x80;P2 & 0x1f; } led.c #include <LED.H>idata unsigned char temp_1 0x00; idata unsigned char temp_old…

通过HTTP协议实现Git免密操作的解决方案

工作中会遇到这样的问题的。 通过HTTP协议实现Git免密操作的解决方案 方法一&#xff1a;启用全局凭据存储&#xff08;推荐&#xff09; 配置凭证存储‌ 执行以下命令&#xff0c;让Git永久保存账号密码&#xff08;首次操作后生效&#xff09;&#xff1a; git config --g…

Java常见面试问题

一.Liunx 二.Java基础 1.final 2.static 3.与equals 三.Collection 1.LIst 2.Map 3.Stream 四、多线程 1.实现方法 2.线程池核心参数 3.应用场景 五、JVM 1.堆 2.栈 六、Spring 1.面向对象 2.IOC 3.AOP 七、Springboot 1.自动装配 八、SpringCloud 1.Nacos 2.seata 3.ga…

【蓝桥杯】第十六届蓝桥杯 JAVA B组记录

试题 A: 逃离高塔 很简单&#xff0c;签到题&#xff0c;但是需要注意精度&#xff0c;用int会有溢出风险 答案&#xff1a;202 package lanqiao.t1;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWrit…

PyTorch Tensor维度变换实战:view/squeeze/expand/repeat全解析

本文从图像数据处理、模型输入适配等实际场景出发&#xff0c;系统讲解PyTorch中view、squeeze、expand和repeat四大维度变换方法。通过代码演示对比不同方法的适用性&#xff0c;助您掌握数据维度调整的核心技巧。 一、基础维度操作方法 1. view&#xff1a;内存连续的形状重…

Kubernetes nodeName Manual Scheduling practice (K8S节点名称绑定以及手工调度)

Manual Scheduling 在 Kubernetes 中&#xff0c;手动调度框架允许您将 Pod 分配到特定节点&#xff0c;而无需依赖默认调度器。这对于测试、调试或处理特定工作负载非常有用。您可以通过在 Pod 的规范中设置 nodeName 字段来实现手动调度。以下是一个示例&#xff1a; apiVe…

即时编译器(JIT)的编译过程是什么?

1. 触发编译 JIT编译的触发基于热点代码检测&#xff0c;主要通过两种计数器&#xff1a; • 方法调用计数器&#xff1a;统计方法被调用的次数&#xff08;默认阈值&#xff1a;C1为1,500次&#xff0c;C2为10,000次&#xff09;。 • 回边计数器&#xff1a;统计循环体的执行…

Java基础:集合List、Map、Set(超详细版)

集合体系概述 Collection常用方法 补充&#xff1a;addAll() Collection的遍历方式 迭代器 增强for&#xff08;空集合可以&#xff0c;null不可以&#xff09; lambda 集合对象存储对象原理 遍历方式的区别 List集合 特点、特有方法 遍历方式 &#xff08;同上&#xff09…

Elasticsearch 全面解析

Elasticsearch 全面解析 前言一、简介核心特性应用场景 二、核心原理与架构设计1. 倒排索引&#xff08;Inverted Index&#xff09;2. 分片与副本机制&#xff08;Sharding & Replication&#xff09;3. 节点角色与集群管理 三、核心特点1. 灵活的查询语言&#xff08;Que…

【2】k8s集群管理系列--包应用管理器之helm(Chart语法深入应用)

一、Chart模板&#xff1a;函数与管道 常用函数&#xff1a; • quote&#xff1a;将值转换为字符串&#xff0c;即加双引号 • default&#xff1a;设置默认值&#xff0c;如果获取的值为空则为默认值 • indent和nindent&#xff1a;缩进字符串 • toYaml&#xff1a;引用一…