Untitled

 avatar
unknown
plain_text
a year ago
1.5 kB
6
Indexable
import java.io.*;
import java.util.*;

public class Solution {

    static int sherlockAndAnagrams(String s) {
        HashMap<String, Integer> map = new HashMap<>();
        int totalCount = 0;

        // Generate all substrings
        for (int i = 0; i < s.length(); i++) {
            for (int j = i; j < s.length(); j++) {
                char[] substring = s.substring(i, j + 1).toCharArray();
                Arrays.sort(substring);  // Sort the characters to normalize
                String sortedSubstring = new String(substring);
                map.put(sortedSubstring, map.getOrDefault(sortedSubstring, 0) + 1);
            }
        }

        // Count pairs of anagrammatic substrings
        for (int count : map.values()) {
            totalCount += (count * (count - 1)) / 2;
        }

        return totalCount;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        int q = Integer.parseInt(bufferedReader.readLine().trim());

        for (int qItr = 0; qItr < q; qItr++) {
            String s = bufferedReader.readLine();
            int result = sherlockAndAnagrams(s);
            bufferedWriter.write(String.valueOf(result));
            bufferedWriter.newLine();
        }

        bufferedReader.close();
        bufferedWriter.close();
    }
}
Editor is loading...
Leave a Comment