蓝桥杯练习-简单2

程序猿圈子里正在流行一种很新的简写方法:对于一个字符串,只保留首尾字符,将首尾字符之间的所有字符用这部分的长度代替。例如internation-alization 简写成i18n,Kubernetes (注意连字符不是字符电的一部分)简写成 K8s, Langiao 简写成 L5o 等
在本题中,我们规定长度大于等于K 的字符串都可以采用这种简写方法(长度小于K 的字符串不配使用这种简写。
给定一个字符串 S 和两个字符 c1和c2,请你计算 S 有多少个以从c1 开头 c2结尾的子可以采用这种简写?

暴力法

#include <iostream>
using namespace std;
#define INF 0x3f3f3f3fint clean(string s, char c1, char c2)
{int k;cin >> k;int count = 0;if (s.length() < k)return 0;               //若字符串小于直接返回0for (int i = 0; i < s.length(); i++){if(s[i] != c1)continue;                 //找到第一个c1开头的字符串for (int j = i; j < s.length(); j++){if (s[j] == s[i]&&(j-i+1)>=k)count++;}}return count;
}
signed main()
{ios::sync_with_stdio;cin.tie(0);cout.tie(0);string s;char c1, c2;int n = 1;cin >> s;cin >> c1 >> c2;while (n--)cout << clean(s,c1,c2);}

二分法

#include <iostream>
using namespace std;
#define INF 0x3f3f3f3f
#include <vector>int clean(string s, char c1, char c2)
{int k;cin >> k;int count = 0;if (s.length() < k)return 0;               //若字符串小于直接返回0vector<int>arr;for (int i = 0; i < s.size(); i++){if (s[i] == c1)arr.push_back(i);if (s[i] == c2) {if (!arr.size() || (i - k + 1) < 0) //没有一个首字符了,或者第一个尾字符的位置不满足kcontinue;if (arr[0] > (i - k + 1))continue;  //判断一种特殊情况所有的都在右边int l = 0, r = arr.size();while (l < r){int mid = (l + r + 1) >> 1;if (arr[mid] > i - k + 1)r = mid - 1;elsel = mid;}count += l;}}return count;
}
signed main()
{ios::sync_with_stdio;cin.tie(0);cout.tie(0);string s;char c1, c2;int n = 1;cin >> s;cin >> c1 >> c2;while (n--)cout << clean(s,c1,c2);}

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

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

相关文章

图文解析交流慢充原理和握手协议以及OBC工作原理

1.接口定义 2.硬件连接原理 2.obc工作原理 OBC里面包括单片机1和单片机2&#xff0c;DSP。 有的厂家方案只有一个单片机&#xff0c;CC/CP部分直接用DSP实现。交流桩的ARM控制K1、K2&#xff0c;S1。单片机1控制K3。单片机2控制S2。DSP控制K4。BMS控制PDU里面的K5&#x…

地理空间分析6——地理空间数据挖掘与Python

目录 写在开头1. 聚类分析1.1 聚类分析基本概念K均值算法步骤1.2 Python中的地理空间聚类分析1.3 应用场景举例2. 分类问题2.1 将地理数据分为不同类别的方法2.1.1 地理数据分类概述2.1.2 监督学习与无监督学习2.1.3 特征工程2.2 Python中实现地理空间分类问题2.3 应用场景举例…

使用Opencv-python库读取图像、本地视频和摄像头实时数据

使用Opencv-python库读取图像、本地视频和摄像头实时数据 Python中使用OpenCV读取图像、本地视频和摄像头数据很简单&#xff0c; 首先需要安装Python&#xff0c;然后安装Opencv-python库 pip install opencv-python然后在PyCharm或者VScode等IDE中输入对应的Python代码 一…

Maven讲解

介绍 Maven是一个流行的构建工具和项目管理工具&#xff0c;它主要用于Java项目的构建、依赖管理和项目报告生成。Maven通过提供一致的项目结构、自动化的构建过程和强大的依赖管理&#xff0c;简化了项目的开发和维护过程。 下面是一些Maven的主要特点和用途&#xff1a; 项…

Static Nested Class 和 Inner Class的不同

Nested Class一般是C的说法&#xff0c;Inner Class一般是Java的说法&#xff0c;指的是同一意思。 内部类分为静态内部类和非静态内部类。 静态内部类中可以包含静态成员&#xff0c;非静态内部类中不可以包含静态成员。 静态内部类中不能引用外部类中的实例成员。非静态内部类…

【AngularJs】已改变ui-sref的state,但是href的url未改变

<!--数组&#xff1a;var routes [{route:go-update-a,id:1},{route:go-update-b,id:2}];--><a ng-click"vm.changeRoute(item)">改变跳转路径</a> <a ui-sref"{{item.route}}({id: item.id})">去修改</a><!--vm.change…

Transformer and Pretrain Language Models3-6

Pretrain Language Models预训练语言模型 content&#xff1a; language modeling&#xff08;语言模型知识&#xff09; pre-trained langue models(PLMs&#xff09;&#xff08;预训练的模型整体的一个分类&#xff09; fine-tuning approaches GPT and BERT&#xff08;…

【阻塞队列】阻塞队列的模拟实现及在生产者和消费者模型上的应用

文章目录 &#x1f4c4;前言一. 阻塞队列初了解&#x1f346;1. 什么是阻塞队列&#xff1f;&#x1f345;2. 为什么使用阻塞队列&#xff1f;&#x1f966;3. Java标准库中阻塞队列的实现 二. 阻塞队列的模拟实现&#x1f35a;1. 实现普通队列&#x1f365;2. 实现队列的阻塞功…

码云公钥免密配置

码云公钥免密配置 ssh-keygen -t rsa &#xff08;三个回车&#xff09;cat ~/.ssh/id_rsa.pub &#xff08;查看公钥然后放到码云即可&#xff09;推送代码到码云步骤 ssh免密登录

立创EDA学习:设计收尾工作

布线整理 ShiftM&#xff0c;关闭铺铜显示 调整结束后再使用快捷键”ShiftM“打开铺铜 过孔 在空白区域加上一些GND过孔&#xff0c;连接顶层与底层的铺铜。放置好”过孔“后&#xff0c;隐藏铺铜&#xff0c;观察刚才放置的过孔有没有妨碍到其他器件 调整铺铜 先打开铺铜区&…

javaMailSender 发送邮件,基于Spring Boot

目录 引入依赖 配置文件配置 具体代码 MultipartFile 转 File 工具类 引入依赖 <!--邮件--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--日…

《Vue3 基础知识》 Vue2+ElementUI 自动转 Vue3+ElementPlus(GoGoCode)

前言 GoGoCode 一个基于 AST 的 JavaScript/Typescript/HTML 代码转换工具。 AST abstract syntax code 抽象语法树。 实现 第一步&#xff1a;安装 GoGoCode 插件 全局安装最新的 gogocode-cli 即可 npm i gogocode-cli -g查看版本 gogocode-cli -V相关插件说明 插件描述…

【多态】10分钟大白话讲解Java中的多态

1.多态的概念 多态(polymorphism)本来是生物学里的概念&#xff0c;表示地球上的生物在形态和状态方面的多样性。 而在java的面向对象中&#xff0c;多态通俗点说就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生不同的状态。也就是说…

多路IO复用模型——epoll模型

文章目录 一、epoll模型是什么&#xff1f;二、epoll模型工作流程三、epoll模型优缺点总结 一、epoll模型是什么&#xff1f; epoll模型是整合了select和poll优势&#xff0c;并且优化了已知的问题。 使用红黑树作为监听集合&#xff08;监听树&#xff09; 通过epoll_create创…

先进计算产业促湖南数字经济规模突破1.7万亿元

中新网湖南新闻1月26日电 (于冬阳 周沁怡)“截至2023年底&#xff0c;集群汇聚了中电长城、飞腾、麒麟等1400余家企业&#xff0c;产值达1800亿元。”1月26日&#xff0c;国家新一代自主安全计算系统产业集年度工作推进会在长沙举行&#xff0c;国家新一代自主安全计算系统产业…

Segment Routing MPLS概述

段路由SR&#xff08;Segment Routing&#xff09;是基于源路由理念而设计的在网络上转发数据包的一种协议。Segment Routing MPLS是指基于MPLS转发平面的Segment Routing&#xff0c;下文简称为Segment Routing。Segment Routing将网络路径分成一个个段&#xff0c;并且为这些…

python-分享篇-使用海龟turtle模块实现幸福大转盘

文章目录 准备代码效果 准备 一、根目录下放图片 代码 from turtle import * import turtle from random import randint import sys #屏幕初始化 screen turtle.Screen() screen.title("幸运大转盘 转转转~") screen.setup(480,450) screen.bgpic("转盘.png…

低代码助力企业转型可视化

随着企业数字化转型的加速推进&#xff0c;软件开发变得日益重要。然而&#xff0c;传统的软件开发流程往往繁琐且费时&#xff0c;降低了企业转型的效率。低代码开发平台的兴起为企业提供了一种快速、灵活且可视化的解决方案&#xff0c;使企业转型更加高效和可持续。 随着数字…

Android底部导航栏创建——ViewPager + RadioGroup

Android底部导航栏有多种实现方式&#xff0c;本文详解其中的ViewPager RadioGroup方式的实现步骤。 我们先来看以下看一下最终做出的效果&#xff0c;使大家有个基本概念。 本结构特点&#xff1a; 1&#xff0c;ViewPager部分触摸左右滑动切换页面&#xff0c;RadioGroup部…

怎么获取二维码的链接?二维码转链接只需3步

怎么从二维码中提取内容呢&#xff1f;现在很多内容都会用二维码方式来存储&#xff0c;但是有些场景下二维码是无法使用的时候&#xff0c;想要查看二维码中的内容&#xff0c;就需要分解二维码成链接后使用。那么二维码分解成链接具体该怎么做呢&#xff1f;今天就将在线二维…