首页 > eli和字符串
头像 --嘤色暴撃--
发表于 2020-02-04 18:30:10
简单的队列模拟 首先把每一个字母加入队列,我们用head,tail表示队列的头和尾head是头的后一位,tail是尾那么目前所查找的区间长度为tail-head+1, tail=head+1时队列为空我们先不断地加入字母(按顺序)直到其中出现重复的k个字母,这时候就要把头缩回来(++head),直到 展开全文
头像 __Aurora__
发表于 2020-02-04 19:18:38
本题其实用前缀和就可以做因为每个字母出现一次,那么它的出现次数就+1,所以记录它的每个出现位置,用数组trace记录具体做法:struct node{int trace[200010], index=1;} lt[26]; 【trace类似于vector,莫习惯这么写了,见谅】 由于要求同个字母出现 展开全文
头像 longlongyu
发表于 2020-02-05 11:01:59
题目描述:eli拿到了一个仅由小写字母组成的字符串。她想截取一段连续子串,这个子串包含至少k个相同的某个字母。她想知道,子串的长度最小值是多少?注:所谓连续子串,指字符串删除头部和尾部的部分字符(也可以不删除)剩下的字符串。思路:利用for遍历26个字母,每个字母利用尺取法查找满足条件的最小长度。A 展开全文
头像 与人无语
发表于 2020-02-05 12:50:54
我(菜鸡)的想法是先从起始点开始扫描然后直到有字母达到k个 达不到就输出-1用数组储存字符个数 用ans记录最短长度然后维护这一子串 从起始点开始删减字符 直到不满足 从终止点添加字符直到满足如此重复这样把字符串走完 最短长度就出来了 蒟蒻的代码 #include <bits/std 展开全文
头像 谷雨逝
发表于 2020-02-04 23:24:08
eli拿到了一个仅由小写字母组成的字符串。她想截取一段连续子串,这个子串包含至少 个相同的某个字母。她想知道,子串的长度最小值是多少?注:所谓连续子串,指字符串删除头部和尾部的部分字符(也可以不删除)剩下的字符串。 可以开26个前缀,然后双指针找最小 依次记录至博客,以防日后忘记 代码来自寒假训练 展开全文
头像 牛客947274517号
发表于 2020-02-05 21:32:19
题目描述:eli拿到了一个仅由小写字母组成的字符串。 她想截取一段连续子串,这个子串包含至少 个相同的某个字母。 她想知道,子串的长度最小值是多少? 注:所谓连续子串,指字符串删除头部和尾部的部分字符(也可以不删除)剩下的字符串。思想:队列,结构体,字符串脚标的计数总是出错的原因:1、开辟的二维数 展开全文
头像 BlackAtao
发表于 2020-02-06 22:03:51
用邻接表,将对应字母出现的各个位置存下来。用cnt[ ]数组存每个字母出现的次数。 如果字母出现的次数小于k 那就直接跳过如果次数>=k 就对邻接表里所有相邻的k个字母遍历ans 更新最短距离 #include <bits/stdc++.h> using namespace st 展开全文
头像 zitoLi
发表于 2020-02-21 16:06:58
我是如何嫖大佬题解的//随便找一个字符串,比如abcdcbef,按照算法自己模拟一遍就恍然大悟了!18行是核心 嫖了别人的一个解答, #include<bits/stdc++.h> using namespace std; const int N = 200010; char s[N]; 展开全文
头像 小毅儿
发表于 2020-09-16 21:34:16
#include <cstdio> #include <cstring> #include <string> #include <cmath> #include <iostream> #include <algorithm> # 展开全文