https://leetcode.com/problems/shortest-completing-word/description/
class Solution { public: string shortestCompletingWord(string licensePlate, vector<string>& words) { int cnt = 0; vector<int> dict(26,0); for (auto c : licensePlate) { if (isupper(c)) { cnt++; dict[c-'A']++; } if (islower(c)) { cnt++; dict[c-'a']++; } } string res; for (int i = 0; i < words.size(); i++) { const auto& w = words[i]; vector<int> dictTemp = dict; int cntTemp = cnt; for (auto c : w) { if (dictTemp[c-'a'] > 0) { dictTemp[c-'a']--; cntTemp--; } } if (cntTemp == 0) { if (res.length() == 0 || res.length() > w.length()) res = w; } } return res; } };