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