文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个字符串 S,找出所有长度为 K 且不含重复字符的子串,请你返回全部满足要求的子串的 数目

示例 1:
输入:S = "havefunonleetcode", K = 5
输出:6
解释:
这里有 6 个满足题意的子串,分别是:
'havef','avefu','vefun','efuno','etcod','tcode'。示例 2:
输入:S = "home", K = 5
输出:0
解释:
注意:K 可能会大于 S 的长度。在这种情况下,就无法找到任何长度为 K 的子串。提示:
1 <= S.length <= 10^4
S 中的所有字符均为小写英文字母
1 <= K <= 10^4

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-k-length-substrings-with-no-repeated-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • set 查重
class Solution {//C++
public:int numKLenSubstrNoRepeats(string S, int K) {int i = 0, j = 0, n = S.size(),count = 0;unordered_set<char> set;for( ; j < n; ++j){while(set.size() >= K || set.count(S[j]))set.erase(S[i++]);//长度大了,或者包含j字符set.insert(S[j]);//j无重复了if(set.size()==K)//包含j字符结尾的字符串有1个count++;}return count;}
};

32 ms 8.8 MB

class Solution:#py3def numKLenSubstrNoRepeats(self, S: str, K: int) -> int:i, j = 0, 0count = 0st = set()while j < len(S):while len(st) >= K or S[j] in st:st.remove(S[i])i += 1st.add(S[j])if len(st)==K:count += 1j += 1return count

64 ms 13.7 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1100. 长度为 K 的无重复字符子串(滑动窗口)相关推荐

  1. leetcode-1100. 长度为 K 的无重复字符子串

    给你一个字符串 S,找出所有长度为 K 且不含重复字符的子串,请你返回全部满足要求的子串的数目 /*通用模板*/public static int numKLenSubstrNoRepeats(Str ...

  2. leetcode 424. 替换后的最长重复字符(滑动窗口)

    给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含重复字母的最长子串的长度. 注意:字符串长度 和 k 不会超过 104 ...

  3. LeetCode 424. 替换后的最长重复字符(双指针+滑动窗口)

    题目描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含重复字母的最长子串的长度. 注意: 字符串长度 和 k 不会 ...

  4. Leetcode刷题java之3. 无重复字符的最长子串

    执行结果: 通过 显示详情 执行用时 :13 ms, 在所有 Java 提交中击败了49.96% 的用户 内存消耗 :37.5 MB, 在所有 Java 提交中击败了36.47%的用户 题目: 给定一 ...

  5. 【LeetCode】【HOT】3. 无重复字符的最长子串(哈希表)

    [LeetCode][HOT]3. 无重复字符的最长子串 文章目录 [LeetCode][HOT]3. 无重复字符的最长子串 package hot;import java.util.HashMap; ...

  6. 找到字符串的最长无重复字符子串

    题目: 给定一个字符串str,返回str中最长无重复字符子串的长度. 举例: str = "abcd",返回4.  str = "aabcb",返回3. 基本思 ...

  7. 牛客题霸 [找到字符串的最长无重复字符子串] C++题解/答案

    牛客题霸 [找到字符串的最长无重复字符子串] C++题解/答案 题目描述 给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同). 题解: i和j两个指针分别指不重复子 ...

  8. 【字符串】最长无重复字符子串练习题

    **对于一个字符串,请设计一个高效算法,找到字符串的最长无重复字符的子串长度. 给定一个字符串A及它的长度n,请返回它的最长无重复字符子串长度.保证A中字符全部为小写英文字符,且长度小于等于500. ...

  9. 《程序员代码面试指南》第五章 字符串问题 找到字符串的最长无重复字符子串...

    题目 找到字符串的最长无重复字符子串 java代码 努力中.... 转载于:https://www.cnblogs.com/lizhouwei/p/8955166.html

最新文章

  1. 机器学习(7)--VC维数
  2. lambdafiltermapreduce函数的基本使用
  3. Azure SQL Database (23) Azure SQL Database Dynamic Data Masking动态数据掩码
  4. 基于Android 虹软人脸、人证对比,活体检测
  5. aws python lambda_python – AWS Lambda发送HTTP请求
  6. ubuntu中显示本机的gpu_Ubuntu下如何查看GPU版本和使用信息
  7. Enterprise Vault 2007 软硬件兼容性
  8. (Windbg调试一)minidump崩溃捕捉
  9. html的函数都有什么,yearfrac函数什么意思
  10. 刘宝瑞相声《珍珠翡翠白玉汤》台词
  11. java线程倒计时_Java核心知识点学习----多线程 倒计时记数器CountDownLatch和数据交换的Exchanger...
  12. 天行健,君子以自强不息;地势坤,君子以厚德载物的权威解释
  13. Storj:区块链在云存储上的应用
  14. Oracle 基于用户管理恢复的处理
  15. DAU/MAU?UGC?
  16. 752_LaTeX基础软件使用测试
  17. 理解MySQL主从复制之realy_log_recovery
  18. TUP第19期综述:从12306看海量并发网站架构
  19. linux mint 18.3 内核,Linux Mint 18.3 “Sylvia” Cinnamon 和 MATE版发布可下载
  20. C++实现图形界面五子棋游戏源码

热门文章

  1. 【R】语言第二课----- 变量的使用方法
  2. 大数据之Kafka内部原理详细介绍
  3. java futuretask 实例_java 使用Callable+FutureTask获取执行结果
  4. matlab图像输出表格_matlab 图像输出3维字
  5. 在Ubuntu下运行 apt-get update命令后出现错误:
  6. 2018 Multi-University Training Contest 3
  7. SequenceFile文件
  8. 直击中关村创业大街,新街头霸王来了
  9. React Native - 3 View, Text简介以及onPress onLongPress事件
  10. C++primer拾遗(第八章:IO库)