【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

Flutter 三方库 twitter_intent 的鸿蒙化适配指南 - 实现一键唤起 X (原 Twitter) 社交意图、支持预填发帖内容与第三方授权跳转

Flutter 三方库 twitter_intent 的鸿蒙化适配指南 - 实现一键唤起 X (原 Twitter) 社交意图、支持预填发帖内容与第三方授权跳转

欢迎加入开源鸿蒙跨平台社区:[https://openharmonycrossplatform.ZEEKLOG.net, https://openharmonycrossplatform.ZEEKLOG.net] Flutter 三方库 twitter_intent 的鸿蒙化适配指南 - 实现一键唤起 X (原 Twitter) 社交意图、支持预填发帖内容与第三方授权跳转 前言 在进行 Flutter for OpenHarmony 的全球化应用开发时,支持社交媒体的快速分享和交互是提升用户活跃度的重要手段。twitter_intent 致力于通过简单的 URL Intent 模式,让应用能瞬间跳转到 X (原 Twitter) 并自动填充推文内容、用户名或搜索词。本文将具体介绍如何在鸿蒙端构建丝滑的社交分享体验。 一、原理解析 / 概念介绍 1.1 基础原理 twitter_intent 利用了移动端的

By Ne0inhk
HarmonyOS应用开发实战(基础篇)Day07-《登录注册页面》

HarmonyOS应用开发实战(基础篇)Day07-《登录注册页面》

设计:从零构建一个专业级登录页面 在移动应用开发中,登录/注册页面是用户与系统建立身份关联的第一道门户,其设计质量直接影响用户的第一印象与使用体验。本文将基于 ArkTS 与 HarmonyOS 的 ArkUI 框架,从 UI 设计到交互逻辑,完整实现一个简洁、安全、响应式的登录页面。 一、设计目标与视觉规范 根据需求草图,我们的登录页面需包含以下核心元素: * 顶部 Logo:品牌标识,增强识别度; * 账号输入框:支持文本输入,带占位提示; * 密码输入框:密文显示,保障安全; * 操作按钮组:包含“登录”与“取消”两个功能按钮; * 交互反馈:输入校验、加载状态、跳转逻辑。 整体风格遵循 HarmonyOS 设计语言(HUAWEI Design): * 使用 vp

By Ne0inhk
【Linux】Linux基本使用和程序部署

【Linux】Linux基本使用和程序部署

🎬 那我掉的头发算什么:个人主页 🔥 个人专栏: 《javaSE》《数据结构》《数据库》《javaEE》 ⛺️待到苦尽甘来日 文章目录 * Linux环境搭建 * 环境搭建方式 * 使用云服务器 * 使用终端软件连接到Linux * Linux常用命令 * ls * pwd * cd * touch * cat * mkdir * rm * cp * mv * tail * vim * grep * ps * netstat * 搭建java部署环境 * apt * JDK * MYSQL * 部署web项目到Linux * 什么是部署 * 环境配置 * 构建项目并打包 * 上传jar包运行程序 * 杀死进程 Linux环境搭建 环境搭建方式 主要有四种: 1. 直接安装在物理机上。但是 Linux 桌面使用起来非常不友好。所以不建议。【不推荐】。 2. 使用虚拟机软件,

By Ne0inhk

Flutter 三方库 super_dates 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、强类型、更优雅的 DateTime 增强与时间逻辑审计引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 super_dates 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、强类型、更优雅的 DateTime 增强与时间逻辑审计引擎 在鸿蒙(OpenHarmony)系统的日程管理、精密任务调度(如鸿蒙版闹钟/日历)、理财工具或带有复杂时间区间(Periods)计算的应用中,如何摆脱标准 DateTime 库中那些模糊的整数偏移,转而使用语义明确、强类型保障的现代日期 API?super_dates 为开发者提供了一套工业级的、基于 Extension 的 DateTime 深度增强方案。本文将深入实战其在鸿蒙时间维度逻辑层中的应用。 前言 什么是 SuperDates?它不是一个替代 DateTime 的庞大框架,而是对 Dart 原生时间类的一次“极致外科手术级”

By Ne0inhk