Leetcode 288 Solution

This article provides solution to leetcode question 288 (unique-word-abbreviation)

https://leetcode.com/problems/unique-word-abbreviation

Solution

class ValidWordAbbr { string getAbbr(const string& word) { if (word.size() <= 2) return word;
string abbr = word.substr(0, 1); abbr += to_string(word.size() - 2); abbr += word[word.size() - 1]; return abbr; }
unordered_map<string, int> s; unordered_map<string, int> words;
public: ValidWordAbbr(vector<string> dictionary) { for (auto word : dictionary) { if (words[word] > 0) continue;
words[word]++; auto abbr = getAbbr(word); s[abbr]++; } }
bool isUnique(string word) { auto abbr = getAbbr(word); return words[word] == 0 && s[abbr] == 0 || words[word] == 1 && s[abbr] == 1; } };
/** * Your ValidWordAbbr object will be instantiated and called as such: * ValidWordAbbr obj = new ValidWordAbbr(dictionary); * bool param_1 = obj.isUnique(word); */