sherlockAndAnagrams HackerRank Solution: Looking for sherlockAndAnagrams solution for Hackerrank problem? Get solution with source code and detailed explainer video.

Two strings are anagrams of each other if the letters of one string can be rearranged to form the other string. Given a string, find the number of pairs of substrings of the string that are anagrams of each other.
Example
s=’mom’

The list of all anagrammatic pairs is [m,m],[mo,om], at positions Go to problem statement

## Explanation Video:

Mentor: Satyendra Jaiswal
Langauge: Python

## Source Code:  for `sherlockAndAnagrams` function

``````
# Complete the sherlockAndAnagrams function below.
def sherlockAndAnagrams(s):
count=0
dic=Counter(s)
for i in range(2,len(s)):
sb=s[0:i]
l=len(sb)
dic["".join(sorted(sb))]+=1
for j in range(1,len(s)):
if j+l<=len(s):
dic["".join(sorted(s[j:j+l]))]+=1

# print(dic)
for k,v in dic.items():
count+=v*(v-1)//2
return count
``````
coming soon…
coming soon…

## Full Source Code:

``````
#!/bin/python3

import math
import os
import random
import re
import sys
from collections import Counter
# Complete the sherlockAndAnagrams function below.
def sherlockAndAnagrams(s):
count=0
dic=Counter(s)
for i in range(2,len(s)):
sb=s[0:i]
l=len(sb)
dic["".join(sorted(sb))]+=1
for j in range(1,len(s)):
if j+l<=len(s):
dic["".join(sorted(s[j:j+l]))]+=1

# print(dic)
for k,v in dic.items():
count+=v*(v-1)//2
return count

if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

q = int(input())

for q_itr in range(q):
s = input()

result = sherlockAndAnagrams(s)

fptr.write(str(result) + '\n')

fptr.close()

``````
coming soon…
coming soon…