1class Solution {2public:3string shortestCompletingWord(string licensePlate, vector<string> &words) {4string ans = "";5vector<int> m(26, 0);6for (auto &lp : licensePlate) {7if (isalpha(lp)) m[tolower(lp) - 'a']++;8}9for (auto &word : words) {10vector<int> v = m;11for (auto &ch : word) {12v[tolower(ch) - 'a']--;13}14bool flag = true;15for (int i = 0; i < 26; i++) {16if (v[i] > 0) flag = false;17}18if (flag && (ans == "" || ans.size() > word.size())) ans = word;19}20return ans;21}22};23// if you like the solution plz upvote.