题目描述
给定长度 k,找出字符串 str 里面所有长为 k 的子串。子串的字符不能重复,输出满足这样条件的子串数量(子串相同的只算 1 个)。
思路点拨
用双指针可以将所有的满足条件的子串找出来,在去重方面可以采用字符串 hash,也可以直接 HashMap 或者 HashSet 去重。
考点分析
本题主要考察双指针,仔细分析一下,字符全是小写字母,所有有效的字符串最多长度为 26, 当 k>26 时直接输出 0,k<=26 时用 HashMap 或者 HashSet,复杂度 O(n)。如果这题卡壳了,则需要好好的去刷刷双指针的题目。
九章参考程序 https://www.jiuzhang.com/solution/find-substring/?utm_source=sc-v2ex-fks
最后,给大家送一波算法课福利~
《线段树与树状数组》这门原价$199 的课程,现在免费即可获得!
参与方式:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.