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

【C++】 —— 笔试刷题day_16
刷题_day16,继续加油啊

一、字符串替换

题目解析

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

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

算法分析

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

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

这里需要注意:

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

代码实现

classStringFormat{public: string formatString(string A,int n, vector<char> arg,int m){// write code here string 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>usingnamespace std;boolisprim(int x){if(x<2)returnfalse;for(int i =2;i<=sqrt(x);i++){if(x % i ==0)returnfalse;}returntrue;}intcheck(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]))return1;}}return0;}intmain(){int l,r; cin>>l>>r;int ret =0;for(int i =max(10,l);i<=r;i++){ ret+=check(i);} cout<<ret<<endl;return0;}

三、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>usingnamespace std;intmain(){ 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;return0;}

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

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

Read more

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

摘要:本文聚焦OpenClaw从测试环境走向生产环境的核心痛点,围绕“性能优化、安全加固、监控运维”三大维度展开实操讲解。先明确生产环境硬件/系统选型标准,再通过硬件层资源管控、模型调度策略、缓存优化等手段提升响应速度(实测响应效率提升50%+);接着从网络、权限、数据三层构建安全防护体系,集成火山引擎安全方案拦截高危操作;最后落地TenacitOS可视化监控与Prometheus告警体系,配套完整故障排查清单和虚拟实战案例。全文所有配置、代码均经实测验证,兼顾新手入门实操性和进阶读者的生产级部署需求,帮助开发者真正实现OpenClaw从“能用”到“放心用”的跨越。 优质专栏欢迎订阅! 【DeepSeek深度应用】【Python高阶开发:AI自动化与数据工程实战】【YOLOv11工业级实战】 【机器视觉:C# + HALCON】【大模型微调实战:平民级微调技术全解】 【人工智能之深度学习】【AI 赋能:Python 人工智能应用实战】【数字孪生与仿真技术实战指南】 【AI工程化落地与YOLOv8/v9实战】【C#工业上位机高级应用:高并发通信+性能优化】 【Java生产级避坑指南:

By Ne0inhk
ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

🎬 渡水无言:个人主页渡水无言 ❄专栏传送门: 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》 ❄专栏传送门: 《freertos专栏》《STM32 HAL库专栏》 ⭐️流水不争先,争的是滔滔不绝  📚博主简介:第二十届中国研究生电子设计竞赛全国二等奖 |国家奖学金 | 省级三好学生 | 省级优秀毕业生获得者 | ZEEKLOG新星杯TOP18 | 半导纵横专栏博主 | 211在读研究生 在这里主要分享自己学习的linux嵌入式领域知识;有分享错误或者不足的地方欢迎大佬指导,也欢迎各位大佬互相三连 目录 前言  一、实验基础说明 1.1、互斥体简介 1.2 本次实验设计思路 二、硬件原理分析(看过之前博客的可以忽略) 三、实验程序编写 3.1 互斥体 LED 驱动代码(mutex.c) 3.2.1、设备结构体定义(28-39

By Ne0inhk
Flutter for OpenHarmony:swagger_dart_code_generator 接口代码自动化生成的救星(OpenAPI/Swagger) 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:swagger_dart_code_generator 接口代码自动化生成的救星(OpenAPI/Swagger) 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 后端工程师扔给你一个 Swagger (OpenAPI) 文档地址,你会怎么做? 1. 对着文档,手写 Dart Model 类(容易写错字段类型)。 2. 手写 Retrofit/Dio 的 API 接口定义(容易拼错 URL)。 3. 当后端修改了字段名,你对着报错修半天。 这是重复劳动的地狱。 swagger_dart_code_generator 可以将 Swagger (JSON/YAML) 文件直接转换为高质量的 Dart 代码,包括: * Model 类:支持 json_serializable,带 fromJson/

By Ne0inhk
Linux 开发别再卡壳!makefile/git/gdb 全流程实操 + 作业解析,新手看完直接用----《Hello Linux!》(5)

Linux 开发别再卡壳!makefile/git/gdb 全流程实操 + 作业解析,新手看完直接用----《Hello Linux!》(5)

文章目录 * 前言 * make/makefile * 文件的三个时间 * Linux第一个小程序-进度条 * 回车和换行 * 缓冲区 * 程序的代码展示 * git指令 * 关于gitee * Linux调试器-gdb使用 * 作业部分 前言 做 Linux 开发时,你是不是也遇到过这些 “卡脖子” 时刻?写 makefile 时,明明语法没错却报错,最后发现是依赖方法行没加 Tab;想提交代码到 gitee,记不清 git add/commit/push 的 “三板斧”,还得反复搜教程;用 gdb 调试程序,输了命令没反应,才想起编译时没加-g生成 debug 版本;甚至连写个进度条,都搞不懂\r和\n的区别,导致进度条乱跳…… 其实这些问题,

By Ne0inhk