1002. 查找共用字符

题目

这道题没写出来,主要是不知道怎么处理重复字符,看了卡哥思路,茅塞顿开。

img

真的是很妙的转换。

跟着卡哥代码敲的:

class Solution {
public:
    vector<string> commonChars(vector<string>& words) {
        vector<string> result;
        if (words.size() == 0)  return result;
        int hash[26] = {0};
        for (auto c : words[0])
            hash[c - 'a']++;
        int hashOtherStr[26] = {0};
        for (int i = 1; i < words.size(); ++i)
        {
            memset(hashOtherStr, 0, 26 * sizeof(int));
            for (auto c : words[i])
                hashOtherStr[c - 'a']++;
            for (int k = 0; k < 26; ++k)
                hash[k] = min(hash[k], hashOtherStr[k]);
        }
        for (int i = 0; i < 26; ++i)
        {
            while (hash[i])
            {
                string s(1, 'a' + i);
                result.push_back(s);
                hash[i]--;
            }
        }
        return result;
    }
};
posted @ 2025-01-14 14:57  hisun9  阅读(18)  评论(0)    收藏  举报