题解 3154: 蓝桥杯2023年第十四届省赛真题-子串简写

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

子串简写 树状数组 O(nlogn)复杂度 43ms

摘要:解题思路:题目规定了,需要用找出以c1开头和c2开头并且长度需要超过k的子串数目,考虑当结尾加入一个c2结尾的字符时,他会和所有开头为c1的,并且长度不超过k的字符形成子串,那么可以这样考虑每当扫描到……

我也不知道啊,我也才大一

摘要:解题思路:就先找到第一个a[i]满足等于c1的,然后通过循环计算出后面有多少个c2.。并先存到sum中,然后写第二个循环,从第一个开始循环到第n-k个,并每次判断a[i+k-1]是否为c2,如果为c2……

蓝桥杯2023年第十四届省赛真题-子串简写

摘要:解题思路:观察题目可以发现,我们发现第i个是c2可以组成的子串数量[0,i-k]这个区间内c1的数量,所有我们只需要找到每个c2(假设下标为i)[0,i-k]这个区间内c1的数量就可以得到答案。但是观……

时间复杂度最低方法

摘要:解题思路:1.直接暴力遍历出c1,c2的位置数组,以及c1,c2的数量。2.遍历c1,c2数组,用双循环,每一个c1第一次匹配成功c2后边的c2是一定可以匹配这个c1的,时记录该c2的位置,并且下一个……

暴力写法优化

摘要:解题思路:注意事项:参考代码:#include <bits/stdc++.h>using namespace std;int main(){ long re=0; ……

蓝桥杯2023年第十四届省赛真题-子串简写

摘要:解题思路:分别记录首字母和尾字母出现的位置,然后遍历数组得出结果。注意事项:降低时间复杂度,不走回头路,时间复杂度由O(n2)降为O(n)。参考代码:#include<stdio.h……

二分法求解

摘要:解题思路:首先字符串是s,两个连接字符是c1和c2而我们可以发现对于每个c1都会有一个c2(下标记为pos)可以使得pos之后的字符串都能满足条件,发现了没有很像二分的思路,先用a,b数组保存c1,c……

子串简写的两种解题思路:1:前缀和O(n);2:双指针O(n)

摘要:解题思路:对于前缀和,我们用L和R表示字符串的左端点和右端点;我们用一个前缀和数组s[N]来维护a出现的次数,表示在第i位之前有多少个a。处理完后直接将字符串从后往前枚举,如果找到一个b,则可以匹配前……