Nombre de paires valides (X, Y) à partir de chaînes données telles que la concaténation de X avec lui-même donne Y

import java.util.*;

public class Main {

    

    

    public static int

    countPairs(String arr[], int N)

    {

        

        

        

        HashMap<String, Integer> map

            = new HashMap<>();

        

        int count = 0;

        for (int i = 0; i < N; i++) {

            String s = sort(arr[i]);

            

            

            map.put(s, map.getOrDefault(s, 0) + 1);

        }

        

        

        for (int i = 0; i < N; i++) {

            

            String s = sort(arr[i] + arr[i]);

            

            count += map.getOrDefault(s, 0);

        }

        

        return count;

    }

    

    

    public static String sort(String s)

    {

        

        char ch[] = s.toCharArray();

        

        Arrays.sort(ch);

        StringBuffer sb = new StringBuffer();

        for (char c : ch)

            sb.append(c);

        

        return sb.toString();

    }

    

    public static void main(String args[])

    {

        int N = 3;

        

        String arr[] = { "easy", "yeasseay",

                        "medium" };

        

        System.out.println(countPairs(arr, N));

    }

}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller en haut