当前位置: 首页 > news >正文

题解:学而思编程 构建回文(二)

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

学而思编程:构建回文(二)

【题目描述】

小猴有n nn个水晶球排成一排,每一个水晶球的颜色都是红、橙、黄、绿、蓝等等26种颜色中的一种,这些水晶球从左到右依次编号为1 , 2 , . . . , n 1,2,...,n1,2,...,n

小猴最近刚刚学完回文相关知识点:如果一个字符串不论是从左向右看,还是从右向左看,内容都一样,那么这个字符串就是一个回文字符串。例如A B B A ABBAABBAA A A AAAAAAY R U R Y YRURYYRURYQ QQ都是回文字符串,而A B C A ABCAABCAA B A B ABABABABB A BABA则不是。

猴博士想要测试一下小猴是否完全理解了回文这个一知识点,向他提出了q qq个相关问题。其中第i ii个问题是:小猴能否使用编号在l i l_ilir i r_iri之间(包括两个端点)的所有水晶球,经过任意的重排,使得l i l_ilir i r_iri之间的所有水晶球在颜色上的排列能构成一个回文,即第l i l_ili个水晶球颜色与第r i r_iri个水晶球颜色相同,第l i + 1 l_i+1li+1个水晶球颜色与第r i − 1 r_i-1ri1个水晶球颜色相同,第l i − 2 l_i-2li2个水晶球颜色与第r i − 2 r_i-2ri2个水晶球颜色相同,…。

请你帮助小猴统计q qq个问题中一共有多少个问题的结果是能够构成回文。

【输入】

第一行两个整数n nnq qq

第二行一个长度为n nn的字符串s t r strstr,表示排成一排的水晶球颜色,s t r strstr只包含大写字符A ∼ Z A\sim ZAZ,其中每一个字符对应一种不同的颜色。

接下来q qq行,每行两个整数l i , r i l_i,r_ili,ri,表示一个问题。

【输出】

一行一个整数,表示q个问题中一共有多少个问题的结果是能够构成回文。

【输入样例】

9 3 ABBCAAATC 1 3 2 6 37

【输出样例】

2

【算法标签】

#前缀和

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,q;cin>>n>>q;// 输入字符串长度和查询次数string s;cin>>s;// 输入字符串s='a'+s;// 在开头添加字符,使索引从1开始intsum=0;// 满足条件的查询数量intlcnt[500005][26];// 二维前缀和数组,会占用很大内存// 初始化第一行for(intj=0;j<26;j++){lcnt[0][j]=0;}// 计算前缀和for(inti=1;i<=n;i++)// 遍历每个字符{// 前i个字符中,每个字母的出现次数for(intj=0;j<26;j++)// 遍历26个字母{lcnt[i][j]=lcnt[i-1][j]+(s[i]-'A'==j);}}while(q--)// 处理每个查询{intl,r;cin>>l>>r;// 输入查询区间inttong=0;// 奇数次出现的字母个数for(inti=0;i<=25;i++)// 检查每个字母{// 计算区间[l,r]内字母i的出现次数intcnt=lcnt[r][i]-lcnt[l-1][i];if(cnt%2==1)// 如果是奇数次{tong++;}}if(tong<=1)// 最多只有一个字母出现奇数次{sum++;// 满足条件}}cout<<sum;// 输出满足条件的查询数量return0;}

【运行结果】

9 3 ABBCAAATC 1 3 2 6 3 7 2
http://www.gsyq.cn/news/1589215.html

相关文章:

  • Node.jsvsSpringBoot:后端技术栈选型深度对比
  • 轻松搭建个人游戏串流服务器:Sunshine实用指南
  • 动力系统周期数据刚性:从拓扑共轭到光滑共轭的数学原理
  • Ventoy:告别重复格式化,一劳永逸的多系统启动U盘解决方案
  • 靠谱的江西单招机构
  • GeoWake隐私政策
  • 线上公证怎么办理?线上公证和线下公证有什么区别?
  • 从离散到连续:基于单调耦合与Best-of-Three擦除的随机树演化模拟
  • 2026 年小程序开发公司怎么选?完整避坑指南 + 标杆企业对比
  • FIFA 23 Live Editor终极教程:开源游戏修改器的技术架构与实现原理
  • 802.11p V2X技术:如何为弱势道路使用者编织无形安全网
  • 响应式编程和并发编程区别
  • 5分钟解决Visual C++运行时错误:终极一站式修复方案
  • PHP文件包含漏洞实战:绕过伪协议过滤与日志注入利用
  • 互联网开发技术全面梳理:深度分析(前端+后端+数据库+中间件+运维架构+项目工程化+云原生+安全)/多表格结构化版
  • Python图像处理实战:从像素矩阵到工业级预处理流水线
  • 高效离线语音转录终极指南:用Buzz彻底改变你的音频处理工作流
  • 渗透测试实战指南:从漏洞扫描到内网渗透的完整攻防艺术
  • 低功耗IoT设备电源管理:PMIC选型与i.MX RT600系统设计实践
  • 3步实现输入法词库无缝迁移:告别平台切换的困扰
  • 加权AM-GM不等式:从乘积极值到线性优化的降维策略
  • 如何将 iPad 同步至新电脑,且不丢失原有数据?
  • 2026甘肃考公机构梯队排名:从第一梯队到潜力机构,哪家更值得选?
  • 顶刊聚焦|肿瘤相关巨噬细胞(TAM)新的功能亚群 —— 机制已解构,空间待解析
  • vscode到底有什么用
  • 生产级ML模型部署:从Notebook到稳定推理服务
  • iOS自动化测试核心:WebDriverAgent原理、配置与Appium集成实战
  • 当“散装物料”遇上“智慧装车”:工厂里的装车,也可以很智能
  • 如何免费激活Unity全版本:UniHacker跨平台破解工具完整指南
  • XUnity自动翻译器完全指南:解锁Unity游戏多语言体验的终极方案