[LintCode 题解 | 阿里巴巴面试题:寻找字串]

2020-01-10 15:57:11 +08:00
 hakunamatata11

题目描述

给定长度 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 的课程,现在免费即可获得!

参与方式

  1. 戳我免费试听后,添加九章 Sunny 微信 jiuzhang15
  2. 回复 [ V2EX 线段树] +试听报名截图
777 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/636874

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX