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