Блог пользователя Invn1234

Автор Invn1234, история, 15 месяцев назад, По-английски

Given 2 strings ,determine if they are anagrams of each other.

example :

input:

listen silent

output:

True

  • Проголосовать: нравится
  • -22
  • Проголосовать: не нравится

»
15 месяцев назад, # |
Rev. 3   Проголосовать: нравится +7 Проголосовать: не нравится

Sort the strings and check if they are equal.

Code
»
15 месяцев назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

I suggest you use hashing. A good hashing function in this case is adding the characters, since anagrams will result in the same sum!

int hash(string s) {
  int sum = 0;
  for (auto c : s) sum += c;
  return sum;
}

bool anagram(string s, string t) {
  return hash(s) == hash(t);
}

No way this goes wrong!

»
15 месяцев назад, # |
Rev. 3   Проголосовать: нравится +3 Проголосовать: не нравится

I think this code helps with your problem, although it's a bit long, it is easily understandable and a brute-force solution.

Code

Hope you find it easy...