14届蓝桥杯 C/C++ B组 T7 子串简写 (字符串)

news2024/11/27 22:31:45

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
采用存储目标字符下标的方法,此题的想法比较新奇,故予以记录。

存好下标之后,可以先定位好启始的字符,然后去搜结尾字符符合长度k并且最靠近启始字符的下标,找到之后可以直接取到这个下标之后的所有下标,因为都满足了长度大于等于k。

代码:

#include<iostream>
#include<vector>
using namespace std;
const int N = 5e5 + 10;

int main() {
	 //读入
	int k; cin >> k;
	string str; cin >> str;

	char c1, c2; cin >> c1 >> c2;

	//a1存是字符c1的下标,a2存是字符c2的下标
	vector<int>a1;
	vector<int>a2;
	//存
	for (int i = 0; i < str.length(); i++) {
		if (str[i] == c1)a1.push_back(i);
		if (str[i] == c2)a2.push_back(i);
	}

	long long res = 0;//开longlong存答案

	for (int i = 0; i < a1.size(); i++) {//扫所有的c1对应的下标
		int t = a1[i];		//先取出c1对应下标
		int c = t + k - 1;	//定义出满足和c1距离k的下标

		//二分,从0二分到存c2下标的数组的长度
		int l = 0, r = a2.size() - 1;	
		while (l < r) {
			int mid = l + r >> 1;
			if (a2[mid] >= c)r = mid;	//如果当前c2的下标是大于等于最近的位置,就去搜更小的
			else l = mid + 1;
		}
		//这里直接取a2的长度减去l,l在这里代表的是a2的下标
		//通过上面的二分,l已经是最靠近c1的了,所以这就是能够取到的最长的长度了
		if (a2[l] >= c)res += a2.size() - l;
	}
	cout << res;
	return 0;
}

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

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

相关文章

4.6java学习总结

内部类(补充) 局部内部类 如果在外界定义会检测不到你所定义的局部内部类,直接报错. public class Main {public static void print(int age,int b){class person{int age;public person(int age) {this.age age;}void show(){System.out.println("内部类输出: "a…

探索Flutter混淆在提高应用安全性方面的作用

在移动应用开发中&#xff0c;保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具&#xff0c;帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆&#xff0c;并提供了相关的操作步骤和注意事项。 &#x1f4dd; 摘要 本…

ESP32调试笔记

目录 基于Thonny和micropythonESP32-CAM开发板无法连接Thonnyesp32cam局域网图传esp32代码上位机代码 基于Thonny和micropython ESP32-CAM开发板无法连接Thonny esp32cam有两个模式&#xff1a;下载模式、运行模式 两种模式的接线不同 IO0 短路 GND ! 正是因为两种模式接线…

LeetCode第十五题:三数之和【15/1000 python】

&#x1f464;作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 LeetCode解锁1000题: 打怪升级之旅htt…

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

第十二届蓝桥杯大赛软件赛省赛C/C 大学 B 组 文章目录 第十二届蓝桥杯大赛软件赛省赛C/C 大学 B 组1、空间2、卡片3、直线4、货物摆放5、路径6、时间显示7、砝码称重8、杨辉三角形9、双向排序10、括号序列 1、空间 1MB 1024KB 1KB 1024byte 1byte8bit // cout<<"2…

软考-系统集成项目管理中级-新一代信息技术

本章历年考题分值统计 本章重点常考知识点汇总清单(掌握部分可直接理解记忆) 本章历年考题及答案解析 32、2019 年上半年第 23 题 云计算通过网络提供可动态伸缩的廉价计算能力&#xff0c;(23)不属于云计算的特点。 A.虚拟化 B.高可扩展性 C.按需服务 D.优化本地存储 【参考…

软件测试经典面试题:如何测微信的朋友圈?

这是一道非常经典的面试题&#xff0c;相信很多小伙伴在面试中都被面试官问到过这个问题&#xff0c;想要回答好这个面试题&#xff0c;我们首先要搞清楚面试官在考察候选者什么方向测试技能。其实不难猜出&#xff0c;面试官主要是想考察候选者测试用例设计能力。一般会从以下…

【游戏逆向】逆向基础之发包函数和线程发包

网络游戏是需要服务器的&#xff0c;这样才能玩家之间&#xff0c;服务器和玩家之间进行通信。 所以&#xff0c;我们的很多动作&#xff0c;都是要向服务器发包的&#xff0c;那么我们只要能够锁定正确的发包函数&#xff0c;就能很容易的通过调用关系找到该动作的函数&…

Springboot整合tess4j+tesseract实现OCR(文字识别),最新教程!

前言 不用引入什么dll&#xff0c;以及各种乱七八糟的东西。不废话&#xff0c;直接开始教程&#xff01;没有过多讲解里面的知识点&#xff0c;如有需要详细了解请加Qq:1101165230 1、Linux下安装与使用 1.1 安装tesseract&#xff08;复制粘贴敲回车&#xff0c;中间输入Y&…

王权与自由国际服测试资格申请 王权与自由steam国际服预约教程

《王权与自由》是一款由《剑灵》开发商NCsoft公开的旗下大型多人MMORPG新作游戏作品。攻城战&#xff0c;这是游戏中的一个重要玩法&#xff0c;主要分为攻城方和防守方。攻城方需要占领外城的遗址&#xff0c;并利用高轮&#xff08;包括碎石机、跳跃者和战斗航母&#xff09;…

JavaEE初阶之单例模式详解

目录 题外话 正题 单例模式 概念 优点 缺点 饿汉式单例模式 代码及详解 懒汉式单例模式 代码及详解 小结 题外话 昨天爬山去了,回来吃了个烧烤有点累,昨天旷了一天,每周稳定发个五篇文章是没什么太大问题的 正题 单例模式 概念 是一种常见的软件设计模式,确保一个类…

2024/4/2—力扣—栈的最小值

代码实现&#xff1a; typedef struct node {int val;struct node *next; } Node;typedef struct {struct node *top;int min; } MinStack;/** initialize your data structure here. */MinStack* minStackCreate() {MinStack *obj malloc(sizeof(*obj));obj->top NULL;ob…

ArcGIS Server 安装教程

​​​​​​​ 一、环境与文件准备 1.软件环境 已安装arcgis Desktop 10.2 2.安装及授权文件 二、安装步骤 1.下载安装包和授权文件&#xff0c;解压后打开ArcGIS Server10.2文件夹&#xff0c;打开ESRI.exe。 2.点击ArcGIS for Server后的Setup&#xff0c;开始安装。 3.…

scratch绘制六芒星图 2024年3月中国电子学会 图形化编程 scratch编程等级考试二级真题和答案解析

目录 scratch绘制六芒星图 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、实现流程 1、案例分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 …

[C++][算法基础]模拟堆(堆)

维护一个集合&#xff0c;初始时集合为空&#xff0c;支持如下几种操作&#xff1a; I x&#xff0c;插入一个数 x&#xff1b;PM&#xff0c;输出当前集合中的最小值&#xff1b;DM&#xff0c;删除当前集合中的最小值&#xff08;数据保证此时的最小值唯一&#xff09;&…

基于springboot的充电桩管理系统 (含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的充电桩管理系统1拥有三种角色&#xff1a;管理员、用户和维修人员 管理员&#xff1a;用户管理、充电桩管理、报修管理、类别管理、充电常识管理等 维修人员&#xff…

网易邮箱删除指定邮箱

一、 背景&#xff1a; 我们平时经常会收到很多恶意或者一些不重要的邮件&#xff0c;并且经常会堆满邮箱&#xff0c;导致看邮箱的时间一堆未读邮件&#xff0c;手动删除一些不重要的邮件需要一个一个的去点击&#xff0c;并且还要去判断是指定的发件人的邮件&#xff0c;像…

解决Xshell连接不上虚拟机

相信有很多同学和我一样遇到这个问题&#xff0c;在网上看了很多教程基本上都先让在虚拟机输入ifconfig命令查看ip地址&#xff0c;弄来弄去最后还是解决不了&#x1f62d;&#x1f62d;&#xff0c;其实问题根本就不在命令上&#xff0c;很大概率是我们的虚拟机没有开启网卡&a…

2024/4/2—力扣—最小高度树

代码实现&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ struct TreeNode* buildTree(int *nums, int l, int r) {if (l > r) {return NULL; // 递归出口}struct…

【SpringBoot整合系列】SpringBoot整合FastDFS(一)

目录 FastDFSFastDFS特点相关概念的介绍Tracker ServerStorage Server FastDFS环境搭建【CentOS 7】环境准备安装gcc和libevent上传安装包安装libfastcommon安装FastDFS拷贝配置文件到指定位置tracker配置storage配置client测试上传文件安装fastdfs-nginx-module模块到nginx第一…