#include #include #include #include #include "HashTable.h" static HashTable loadHashTable(char *s); bool anagram(char *s, char *t) { // TODO if(strlen(s) != strlen(t)) { return false; } HashTable sCounter = loadHashTable(s); HashTable tCounter = loadHashTable(t); for(int i=0; s[i]!='\0'; i++) { if (HashTableGetOrDefault(sCounter, s[i], 0) != HashTableGetOrDefault(tCounter, s[i], 0)) { HashTableFree(sCounter); HashTableFree(tCounter); return false; } } HashTableFree(sCounter); HashTableFree(tCounter); return true; } static HashTable loadHashTable(char *s) { HashTable counter = HashTableNew(); for(int i=0; s[i]!='\0'; i++) { int currentCount = HashTableGetOrDefault(counter, s[i], 0); HashTableInsert(counter, s[i], currentCount + 1); } return counter; }