Problem Description
You are given a string A. You need to solve Q queries. In each query, you will be given a string B[i]. You need to find the count of the number of substrings of A which are anagrams of B[i].
String x is an anagram of string y, if we can rearrange the letters in string x and get the exact string y. For example, strings "dog" and "god" are anagrams, so are strings "baba" and "aabb", but strings "abbac" "caaba" are not.
A substring of a string is a contiguous subsequence of that string. So, string "view" is substring of string "interviewbit", but string "viewer" is not.
1 <= |A|, |B[i]| <= 2 x 105
1 <= Q <= 105
∑ |B[i]| <= 2 x 105
All the strings consist of lowercase english letters.
The first argument contains a string A.
The second argument contains an array of strings B.
Return an array of size Q, i-th integer is the number of substrings of A which are anagrams of B[i].
Input 1:
A : "jdlidfa" B : [ "daf", "ifd", "dxzjbltsmufythgm" ]Input 2:
A : "lrprpqejhh" B : [ "p", "pjeplqrr"]
Output 1:
[1, 1, 0]Output 2:
[2, 1]
Explanation 1:
1. Substring "dfa" is an anagram of "daf". 2. Substring "idf" is an anagram of "ifd" 3. No anagram exists as a substring.Explanation 2:
1. Substring "p" occurs twice in A. 2. Substring "lrprpqej" is an anagram of "pjeplqrr".
NOTE: You only need to implement the given function. Do not read input, instead use the arguments to the function. Do not print the output, instead return values as specified. Still have a question? Checkout Sample Codes for more details.