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

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

筛选

时间复杂度最低方法

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

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

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

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

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

二分法求解

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

3154.子串简写-时间复杂度优化

摘要:解题思路:开始直接使用暴力算法,两个嵌套循环进行搜索,时间复杂度为O(n^2),这意味着对于非常长的字符串,程序需要执行大量的计算,效率低下。我们可以通过以下步骤改进这个算法:1.预处理: 遍历一遍字……

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

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