首页 > 试题广场 >

至多包含K种字符的子串

[编程题]至多包含K种字符的子串
  • 热度指数:2447 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的字符串 s ,找出最多包含 k 种不同字符的最长连续子串的长度。

数据范围: , 字符串中仅包含小写英文字母
示例1

输入

"abcck",1

输出

2
示例2

输入

"abcck",2

输出

3

说明

最后三个字符 “cck” 组成最长子串 
头像 牛客马克西
发表于 2023-11-08 13:51:54
滑动窗口思想:通常用于解决连续子序列问题。该算法通过维护一个固定大小的窗口,将问题转化为对窗口内元素的处理,从而实现高效的计算。具体而言,滑动窗口算法通过移动窗口的起始位置和结束位置,不断更新窗口内的元素,以得到问题的解。 #include <algorithm> #include &l 展开全文
头像 fred-coder
发表于 2022-03-25 22:12:19
哈希, 记录当前字符,当字符数多于 k 时,从上一个字符移动并调整哈希表中的值,直至符合条件 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param s string字符串 # @param k int整型 # @return int整型 # 展开全文
头像 剑丶暝
发表于 2024-04-08 14:17:16
解题思路:1、使用前后两个指针,移动后指针遍历字符串,把每个字符出现的位置创建为列表,并存入字典;使用res记录结果,初始值为0;2、后指针对应字符在字典中,或字典中的字符种类没有超过k种,则直接把索引存入字典;3、如果对应字符不在字典中,且字典中字符种类等于k种,则记录当前子串大小并更新res; 展开全文
头像 17c89
发表于 2024-05-31 15:13:38
import java.util.*; /** * NC356 至多包含K种字符的子串 * @author d3y1 */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 展开全文
头像 根据6
发表于 2024-05-03 18:43:45
使用LRU确定需要移除的字符最后出现的位置。 using System; using System.Collections.Generic; public class KV { public int key; public int value; } public class LRU 展开全文
头像 yeye101
发表于 2023-10-23 17:54:11
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @para 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-05 22:30:17
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @pa 展开全文
头像 17c89
发表于 2024-11-03 11:32:19
import java.util.*; /** * NC356 至多包含K种字符的子串 * @author d3y1 */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 展开全文
头像 17c89
发表于 2024-12-03 10:31:47
import java.util.*; /** * NC356 至多包含K种字符的子串 * @author d3y1 */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 展开全文
头像 一屋二人三餐四季五层楼六百方
发表于 2022-04-02 01:15:54
//滑动窗口经典题目 , c++解法 class Solution { public:     int longestSubstring(string s, int k) {         int n = s.size(); &nb 展开全文