Вопрос. Имея две строки 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(); } }
Проверьте этот пост для улучшенного решения.
Больше постов ищите здесь.
Удачи и Чао!