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

蓝桥杯真题 - 子串简写 - 题解

题目链接:https://www.lanqiao.cn/problems/3514/learning/

个人评价:难度 2 星(满星:5)
前置知识:前缀和


整体思路

  • 定义 s u m i sum_i sumi 表示前 i i i 个字符含有字符 c 1 c_1 c1 的个数,如果第 i i i 个字符为 c 2 c_2 c2,只需要将答案加上 s u m i − k + 1 sum_{i-k+1} sumik+1 即可,表示往前 k k k 个字符中,所有以 c 1 c_1 c1 开头的字符都能与 c 2 c_2 c2 组成一个满足条件的子串。

过题代码

#include <bits/stdc++.h>
using namespace std;

typedef long long LL;
const int maxn = 500000 + 100;
int k;
LL ans;
char c1, c2;
char str[maxn];
int sum[maxn];

int main() {
#ifdef ExRoc
    freopen("test.txt", "r", stdin);
#endif // ExRoc
    ios::sync_with_stdio(false);

    cin >> k;
    cin >> (str + 1);
    cin >> c1 >> c2;
    for (int i = 1; str[i] != '\0'; ++i) {
        sum[i] = sum[i - 1];
        if (str[i] == c1) {
            ++sum[i];
        }
        if (i >= k && str[i] == c2) {
            ans += sum[i - k + 1];
        }
    }
    cout << ans << endl;

    return 0;
}

http://www.kler.cn/a/532080.html

相关文章:

  • 知识管理平台在提升组织智慧与执行力方面的关键作用探讨
  • SQLModel入门
  • 强化学习笔记(5)——PPO
  • csapp笔记3.6节——控制(1)
  • FFmpeg:多媒体处理的瑞士军刀
  • IntelliJ IDEA远程开发代理远程服务器端口(免费内网穿透)
  • 开源 CSS 框架 Tailwind CSS
  • upload-labs安装与配置
  • SQL Server中DENSE_RANK()函数:简洁处理连续排名
  • 数据结构:树和二叉树概念_堆篇
  • apikey存储方案探秘(deepseek-R1对话)
  • 九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位)
  • RabbitMQ深度探索:死信队列
  • PHP开发小记-消息推送
  • 《深度揭秘LDA:开启人工智能降维与分类优化的大门》
  • Android学习21 -- launcher
  • 设计一个特殊token以从1亿词表中动态采样8192个词来表达当前序列
  • CSS工程化概述
  • MFC程序设计(八)动态创建机制
  • mysql不同种类时间字段的区别
  • Linux ifstat 命令使用详解
  • qt-Quick笔记之Dark Mode And Light Mode In Application
  • 应对现代电子商务的网络威胁—全面安全战略
  • (脚本学习)BUU18 [CISCN2019 华北赛区 Day2 Web1]Hack World1
  • 自制小动画
  • 基于开源2 + 1链动模式AI智能名片S2B2C商城小程序的内容创作与传播效能探究