Вопрос. Имея две строки s и t, напишите функцию, определяющую, является ли t анаграммой с.

Пример 1:

Input: s = "anagram", t = "nagaram"
Output: true

Пример 2:

Input: s = "rat", t = "car"
Output: false

Полностью вопрос можно посмотреть здесь.

Подход 1. Вот подход, основанный на популярном решении, опубликованном на сайте leetcode. Давайте попробуем создать собственный HashCode, чтобы все анаграммы могли быть представлены одним и тем же значением. Давайте посмотрим, как выглядит код —

//Approach 1:
//Runtime: 3ms
//Memory usage: 37.7MB
class Solution {
    public boolean isAnagram(String s, String t) {
        return getCode(s).equals(getCode(t));
    }
    
    private String getCode(String s){
        char[] array = s.toCharArray();
        int[] i = new int[26];
        for(char c : array){
            i[c-'a'] = i[c-'a']+1;
        }
        StringBuilder str = new StringBuilder("");
        for(int j : i){
            str.append(j)
                .append("#");
        }
        return str.toString();
    }
}

Проверьте этот пост для улучшенного решения.

Больше постов ищите здесь.

Удачи и Чао!