📌  相关文章
📜  另一个数组中存在的数组中每个字符串的字谜计数(1)

📅  最后修改于: 2023-12-03 15:07:26.131000             🧑  作者: Mango

另一个数组中存在的数组中每个字符串的字谜计数

介绍

在开发过程中,我们时常需要判断一个数组中的字符串是否存在于另一个数组中,并返回每个字符串在另一个数组中的出现次数。这就是本文要介绍的“另一个数组中存在的数组中每个字符串的字谜计数”,它的实现方式非常简单,只需要使用哈希表即可。

思路

我们可以先遍历第二个数组,使用哈希表记录每个字符串出现的次数。然后遍历第一个数组,如果当前字符串存在于哈希表中,则将对应的出现次数加入结果数组中。最后返回结果数组即可。

代码实现

以下是用 Python 实现的代码:

def findAllAnagrams(s: str, p: str) -> List[int]:
    res = []
    s_cnt = [0] * 26
    p_cnt = [0] * 26
    for i in range(len(p)):
        p_cnt[ord(p[i]) - ord('a')] += 1
    left, right = 0, 0
    while right < len(s):
        s_cnt[ord(s[right]) - ord('a')] += 1
        if right - left + 1 > len(p):
            s_cnt[ord(s[left]) - ord('a')] -= 1
            left += 1
        if s_cnt == p_cnt:
            res.append(left)
        right += 1
    return res
总结

以上就是“另一个数组中存在的数组中每个字符串的字谜计数”问题的思路和实现方式。这个问题是一个比较综合的问题,需要结合哈希表和滑动窗口的知识点来实现。掌握了这个问题的思路和实现,可以轻松解决类似的问题。