Valid Anagram

Easy C++ Kotlin

Problem Statement

Dadas duas strings s e t, escreva uma função para determinar se t é um anagrama de s.

Questions to ask

Caracteres na string são apenas minúsculos? Sim

Podem existir caracteres especiais na string? Não

Solution

A solução é bem direta. Sabendo que o caractere é um número de 0 a 255, crie um vetor para contar a frequência dos caracteres da primeira string. Agora você passará pelo segundo array e removerá o caractere do array que conta a freqüência. Faça um loop pela matriz de frequência e, se algum valor for diferente de 0, retorne false. Caso contrário, retorne verdadeiro quando loop terminar.

bool isAnagram(string s, string t){
  vector<int> counter (26,0);

  for(auto letter : s){
    counter[letter-'a']++;
  }

  for(auto letter : t){
    counter[letter-'a']--;
  }

  for(auto count : counter){
    if(count!=0)
      return false;
  }

  return true;
}

Complexidade do Tempo: O(n)

Complexidade do espaço: O(1)


question from LeetCode