<p>Given two strings <code>s</code> and <code>p</code>, return <em>an array of all the start indices of </em><code>p</code><em>'s anagrams in </em><code>s</code>. You may return the answer in <strong>any order</strong>.</p> <p>An <strong>Anagram</strong> is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.</p> <p> </p> <p><strong>Example 1:</strong></p> <pre> <strong>Input:</strong> s = "cbaebabacd", p = "abc" <strong>Output:</strong> [0,6] <strong>Explanation:</strong> The substring with start index = 0 is "cba", which is an anagram of "abc". The substring with start index = 6 is "bac", which is an anagram of "abc". </pre> <p><strong>Example 2:</strong></p> <pre> <strong>Input:</strong> s = "abab", p = "ab" <strong>Output:</strong> [0,1,2] <strong>Explanation:</strong> The substring with start index = 0 is "ab", which is an anagram of "ab". The substring with start index = 1 is "ba", which is an anagram of "ab". The substring with start index = 2 is "ab", which is an anagram of "ab". </pre> <p> </p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= s.length, p.length <= 3 * 10<sup>4</sup></code></li> <li><code>s</code> and <code>p</code> consist of lowercase English letters.</li> </ul>