LeetCode 438 找到字符串中所有字母异位词
点此看全部题解 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中)
生活中的算法
还记得小时候玩的"找朋友"游戏吗?每个人都有一个字母牌,需要找到拥有相同字母组合的伙伴。比如,拿着"ate"的同学要找到拿着"eat"或"tea"的同学。这其实就是在寻找字母异位词!
在实际应用中,字母异位词的检测有着广泛的用途。比如在密码学中检测可能的密文变体,或在文本分析中找出词语的不同排列组合。
问题描述
LeetCode第438题"找到字符串中所有字母异位词"是这样描述的:给定两个字符串 s 和 p,找到 s 中所有 p 的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。
异位词指由相同字母重排列形成的字符串(包括相同的字符串)。
例如:
- 输入: s = “cbaebabacd”, p = “abc”
- 输出: [0,6]
- 解释: 起始索引等