Fácil 0 resolvidos 0% de aceitação

Anagram Check

Check whether two phrases use the same letters.

O que você vai aprender

  • Normalize text by case and spaces
  • Compare letter counts or sorted letters
  • Choose between sorting and counting

Problema

Ver tradução

Two phrases are anagrams if they contain exactly the same letters the same number of times, ignoring case, spaces and punctuation.

Implement is_anagram(first, second).

Input

first: The first phrase. second: The second phrase.

Output

Return true if the phrases are anagrams.

Restrições

0 ≤ length of each ≤ 10,000 (ASCII)

Exemplos

Exemplo 1
Entrada:
first = "Listen"
second = "Silent"

Saída esperada:
expected = True
Entrada:
std::string first = "Listen";
std::string second = "Silent";

Saída esperada:
bool expected = true;
Entrada:
string first = "Listen";
string second = "Silent";

Saída esperada:
bool expected = true;

Explicação

Both use e, i, l, n, s, t once each.

Exemplo 2
Entrada:
first = "apple"
second = "paddle"

Saída esperada:
expected = False
Entrada:
std::string first = "apple";
std::string second = "paddle";

Saída esperada:
bool expected = false;
Entrada:
string first = "apple";
string second = "paddle";

Saída esperada:
bool expected = false;

Explicação

The letters and counts differ.

Como abordar

Tente sozinho primeiro e depois abra uma dica de cada vez.

Dica 1

Remove non-letters and ignore case before comparing.

Dica 2

Count character frequencies for both phrases, or sort their normalized forms.

Dica 3

Punctuation and spaces should not affect the result.

Complexidade esperada

O(n) time, O(1) extra space

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.