题目
代码
思路很简单,暴力实现即可,逐一对比。
typedef struct {
char **words;
int wordsSize;
} MagicDictionary;
MagicDictionary *magicDictionaryCreate() {
MagicDictionary *obj = (MagicDictionary *)malloc(sizeof(MagicDictionary));
return obj;
}
void magicDictionaryBuildDict(MagicDictionary *obj, char **dictionary, int dictionarySize) {
obj->words = dictionary;
obj->wordsSize = dictionarySize;
}
bool magicDictionarySearch(MagicDictionary *obj, char *searchWord) {
int length = strlen(searchWord);
for (int i = 0; i < obj->wordsSize; i++) {
if (length != strlen(obj->words[i])) {
continue;
}
int diff = 0;
for (int j = 0; j < length; j++) {
if (searchWord[j] != obj->words[i][j]) {
diff++;
if (diff > 1) {
continue;
}
}
}
if (diff == 1) {
return true;
}
}
return false;
}
void magicDictionaryFree(MagicDictionary *obj) {
free(obj);
}