传智杯 第六届—E
题目描述:
leafee 最近爱上了 abb 型语句,比如“叠词词”、“恶心心”。 leafee 拿到了一个只含有小写字母的字符串,她想知道有多少个 "abb" 型的子序列?
定义: abb 型字符串满足以下条件:
-
字符串长度为 3 。
-
字符串后两位相同。
-
字符串前两位不同。
输入描述:
第一行一个正整数 n
第二行一个长度为 n 的字符串(只包含小写字母)(1≤n≤10^5)
输出描述:
"abb" 型的子序列个数。
示例1
输入:
6
abcbcc
输出:
8
说明:
共有1个abb,3个acc,4个bcc
示例2
输入:
4
abbb
输出:
3
解题思路:
本题是求字符串中所以的abb序列,我们采用的方法是先将字符串中的所有字符的个数记录下来,分别存储在char_number数组的对应位置,例如字符a的个数存储在char_number[0]的位置。然后依次遍历整个字符串,找到该字符后面所有字符的个数(char_number),当某个字符与该字符不同且其个数>2,那么就会产生以该字符为首的abb序列,其个数为,然后再将该字符所对应的char_number数-1,代表后面该字符的个数-1,最终循环结束过后,就可以得到所以的序列个数。
注意:
①当字符串长度过大时,可能会导致最终计算得到的序列个数较大,所以不能采用int型来记录序列个数,可以采用long long型来记录序列个数;
②本题的问题是求得字符串中所有的序列,而不是连续的序列abb;
③采用3个循环得到的运行会超时,所以最多只能采用两个循环。
代码:
#include<iostream>
using namespace std;
int main()
{//创建一维动态数组int num; //用于存储字符的个数cin>>num;char *ch = new char[num];//输入字符for(int i=0;i<num;i++){cin>>ch[i];}//查找long long total = 0; //用于记录abb型序列的个数int char_number[27] = {0};//记录每个字符的个数for(int i=0;i<num;i++){//将每个字符对应的数组下标i所对应的值+1,例如a对应数组下标0,若ch[j]='a',则char_number[0]++char_number[ch[i]-97]++;} //若j后面含有n个相同的字符,则会构成n-1个abb序列(其中n>1)for(int j=0;j<num-2;j++){for(int k=0;k<26;k++){if(char_number[k] > 1 && k != int(ch[j]-97)){total += char_number[k] * (char_number[k]-1) / 2;}}//将这个字符在数组中的个数-1(用于记录在这个字符后面的各个字符个数)char_number[int(ch[j]-97)]--;}cout<<total<<endl;system("pause");return 0;
}

相关文章:
传智杯 第六届—E
题目描述: leafee 最近爱上了 abb 型语句,比如“叠词词”、“恶心心”。 leafee 拿到了一个只含有小写字母的字符串,她想知道有多少个 "abb" 型的子序列? 定义: abb 型字符串满足以下条件: 字符…...
2024.10月12日--- SpringMVC异常处理
异常处理 SpringMVC处理异常的方式有三种,当然也可以使用AOP面向编程,自定义一个类进入切入。 第一种:使用SpringMVC提供的简单异常处理器SimpleMappingExceptionResolver <!--SpringMVC提供的异常处理器类型:SimpleMappingE…...
边缘人工智能(Edge Intelligence)
边缘人工智能(Edge AI)是指在边缘设备上直接运行人工智能(AI)和机器学习(ML)算法的技术。机器学习是一个广泛的领域,近年来取得了巨大的进步。它所基于的原则是,计算机可以通过从数据…...
C++20主要特性
Concepts(概念): Concepts 是一种新的语言特性,允许程序员明确定义类型的要求,从而提高了模板代码的可读性和错误消息的质量。 template <typename T> concept Integral std::is_integral_v<T>;template…...
IterComp: 从模型图库中迭代合成感知反馈学习,用于文本到图像的生成
我们从多个模型中收集组成感知模型偏好,并采用迭代反馈学习方法,使基础扩散模型和奖励模型都能逐步自我完善。 我们提出了一种迭代反馈学习方法,通过多次迭代,使基础扩散模型和奖励模型逐步自我完善,从而以闭环方式增…...
6.Python 函数进阶(函数多返回值、函数多种传参方式、匿名函数)
一、函数多返回值 1、具体实现 def test_return():return 1, 2x, y test_return()print(x) print(y)输出结果 1 22、解析 按照返回值的顺序,用对应顺序的多个变量接收,变量之间用逗号(,)隔开 支持返回不同类型的数据 二、函…...
视频汇聚平台EasyCVR支持云端录像丨监控存储丨录像回看丨录像计划丨录像配置
EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。平台以其强大的视频处理、汇聚与融合能力,在构建视频监控系统中展现出了独特的优势。 EasyCVR视频汇聚平台可接入传统监控行业中高清网络摄像机的RTSP…...
【Spring】获取 Cookie和Session
回顾 Cookie HTTP 协议自身是属于“无状态”协议 无状态:默认情况下,HTTP 协议的客户端和服务器之间的这次通信和下次通信之间没有直接的联系 但是在实际开发中,我们很多时候是需要知道请求之间的关联关系的 例如登录网站成功后ÿ…...
MyBatis-Plus 的核心插件及其使用介绍
MyBatis-Plus 是基于 MyBatis 的增强工具,为简化 MyBatis 的开发提供了诸多功能扩展。它的目标是减少重复代码、提高开发效率,提供了 CRUD(Create, Read, Update, Delete)操作的简化方法以及多种实用插件。以下是 MyBatis-Plus 的…...
雷池社区版本SYSlog使用教程
雷池会对恶意攻击进行拦截,但是日志都在雷池机器上显示 如何把日志都同步到相关设备进行统一的管理和分析呢? 如需将雷池攻击日志实时同步到第三方服务器, 可使用雷池的 Syslog 外发 功能 启用 Syslog 外发 进入雷池 系统设置 页面, 配置 Syslog 设置…...
Leetcode 下一个排列
首先理解整数的字典序,字典序排列总是优先让“较小的”元素出现在前面。字典序的排列规则类似于字典中的单词排列方式,从左到右逐位比较,较小的数字优先出现。按照正整数元素排列的字典序,如果将每个排列视为一个整数值࿰…...
WPF中的布局
布局原则 1、不显式设置元素大小。 2、不使用绝对定位。 元素应该根据容器的内容来进行排列。绝对定位在开发前期会带来一些便捷,但扩展性比较差。一旦显示器尺寸或分辨率发生改变,界面的显示效果可能会达不到预期的效果。 3、布局容器可以嵌套使用 常…...
【Spring】Spring和SpringMVC为什么需要父子容器
Spring和Spring MVC使用父子容器的设计模式,主要是为了实现更好的模块化和隔离,提高系统的灵活性和可维护性。具体来说,Spring应用通常包含两个层次的容器:根容器(Root WebApplicationContext)和子容器&…...
Origin制图——双轴线图实现
1.在我们平常的画图中,我们会遇到属于差别比较的两个数据,但是画两个图又太占地方了(难以实现对数据的比较工作),我们想把它画在一个图上,那么怎么实现呢。首先我们输入导入,可以选择excal文件导…...
【算法系列-哈希表】两个集合的交集问题
【算法系列-哈希表】两个集合的交集问题 文章目录 【算法系列-哈希表】两个集合的交集问题1. 两个集合的交集问题(LeetCode 349)1.1 思路分析🎯1.2 代码示例🌰 2.两个集合的交集问题II(LeetCode 350)2.1 思路分析🎯2.2 代码示例🌰…...
linux 效率化 - zsh + tmux
文章目录 简介涉及的资料/代码仓库让我们开始吧1. Oh my Zsh!2. 终端主题 - powerlevel10k (赋能优雅终端界面)3. Oh my Tmux!安装完成,再加点料1. tmux2. zsh 结语参考资料 简介 来看一段操作演示(全程键盘,没有鼠标…...
Python学习-函数
函数 文章目录 函数定义与调用参数传递内存分析返回值参数定义默认值参数个数可变的参数关键字参数 变量的作用域 匿名函数基本语法示例lambda与排序高阶函数map函数reduce函数filter函数 多关键字排序 定义与调用 函数可以嵌套用 先定义后调用 def calc(a,b):cabreturn cre…...
点评项目-4-隐藏敏感信息、使用 redis 优化登录业务
一、隐藏敏感信息 之前我们对 /user/me 路径,直接返回了登录的所有用户信息,其中的 passward 等敏感信息也会被返回到前端,这是很危险的,故我们需要选择性的返回用户信息,隐藏敏感用户信息 我们可以创建一个 UserDTO…...
Redis异步实现解析
目录 1. Redis 异步方式1.1 同步连接优点缺点示例:访问 Redis,并对 counter 实现自增1000次,统计用时 1.2 异步连接优点缺点1.2.1 Redis 驱动1.2.2 示例第1步:实现 Reactor第2步:实现 Redis 适配器第3步:实…...
matlab 相关
1、xcorr 本质上是两个函数做内积运算 相关算法有两种: 在Matlab上既可以 1.用自带的xcorr函数计算互相关,2.通过在频域上乘以共轭复频谱来计算互相关; 网友验证程序 clc;clear;close all; % s1,s2为样例数据 s1 [-0.00430297851562500;-…...
OFA-VE开源多模态分析系统:GPU算力优化部署实操手册
OFA-VE开源多模态分析系统:GPU算力优化部署实操手册 1. 系统概述与核心价值 OFA-VE是一个基于阿里巴巴达摩院OFA大模型构建的多模态推理平台,专门用于分析图像内容与文本描述之间的逻辑关系。这个系统不仅能看懂图片内容,还能理解文字描述&…...
OpenClaw小龙虾初体验【安装学习】
文章目录一、前言二、安装三、360安全龙虾四、腾讯龙虾4.1 文件移动4.2 应用分析4.3 Docker失败原因一、前言 最近小龙虾很火,不禁能说还能做,本质就类似木马,获取电脑权限,不禁能操作各应用还能联动外接设备。 那肯定要学习一下…...
CDN 无法播放音视频?流媒体回源与 Range 配置修复
流媒体应用现在越来越普及,CDN(内容分发网络)早已成为音视频流畅播放的核心支撑——靠边缘节点就近分发,既能降低延迟,又能减轻源站压力,让用户不用长时间等待就能看高清内容。但实际运维中,“C…...
《B3845 [GESP样题 二级] 勾股数》
题目背景 对应的选择、判断题:https://ti.luogu.com.cn/problemset/1102 题目描述 勾股数是很有趣的数学概念。如果三个正整数 a,b,c,满足 a2b2c2,而且 1≤a≤b≤c,我们就将 a,b,c 组成的三元组 (a,b,c) 称为勾股数。你能通过编…...
企业AI定制开发:以工业场景为核心,赋能全行业数智化转型
在人工智能与实体经济深度融合的趋势下,标准化AI产品难以适配企业差异化业务流程,定制化AI开发成为企业数智化转型的关键路径。山东向量空间人工智能科技有限公司依托JBoltAI企业级Java AI应用开发框架,聚焦工业领域AI改造,同时为…...
轻流MCP|让AI从「会回答」走向「能参与实际业务」
当越来越多企业开始把 AI 引入日常工作,一个现实问题也越来越突出: AI 怎么真正接入业务系统,而不是只停留在聊天层? 过去,很多 AI 更擅长回答问题、生成内容、整理信息。它可以帮助人更快完成写作、总结和分析&#x…...
7自由度开源机械臂:如何用6500美元构建AI研究新范式?
7自由度开源机械臂:如何用6500美元构建AI研究新范式? 【免费下载链接】openarm A fully open-source humanoid arm for physical AI research and deployment in contact-rich environments. 项目地址: https://gitcode.com/GitHub_Trending/op/openar…...
Vue 3 useModel与defineModel实战对比:如何根据项目需求选择最佳双向绑定方案
1. Vue 3双向绑定技术演进与核心概念 双向数据绑定一直是Vue框架的核心特性之一。在Vue 3.4版本中,官方引入了两种新的实现方式:useModel和defineModel。这两种API虽然目标相同,但在使用场景和实现方式上存在明显差异。 要理解它们的区别&…...
Qwen3.5-9B企业落地:制造业BOM表识别+物料替代方案生成实战
Qwen3.5-9B企业落地:制造业BOM表识别物料替代方案生成实战 1. 项目背景与价值 在制造业生产过程中,物料清单(BOM)管理和物料替代是常见的痛点问题。传统方式需要人工核对大量表格数据,效率低下且容易出错。Qwen3.5-9B作为90亿参数的开源大语…...
Go Routine 调度可视化分析
Go Routine调度可视化分析:揭开并发调度的神秘面纱 在Go语言中,Goroutine以其轻量级和高并发的特性成为开发者处理多任务的首选工具。Goroutine的调度机制对许多开发者来说仍然是一个“黑箱”,尤其是在高并发场景下,如何高效管理…...
