【LeetCode】1160. 拼寫單詞

思路


哈希表計數

對於一個單詞word,只要其中的每個字母數量都不大於chars中對應的字母的數量,那麼就可以用chars中的字母拼寫出word。所以我們只需要用一個哈希表存儲chars中每個字母的數量,再用一個哈希表存儲word中每個字母的數量,最後將兩個哈希表的鍵值逐一進行比較即可。

代碼

class Solution {
public:
	int countCharacters(vector<string>& words, string chars) {
		unordered_map<char, int> charMap;
		//存儲chars字符串每個字符出現的次數
		for (char c : chars)
		{
			charMap[c]++;
		}
		int ans = 0;
		for (int i=0;i<words.size();i++)
		{
			//存儲word字符串每個字符出現的次數
			unordered_map<char, int> wordMap;
			bool flag = true;
			for (char c:words[i])
			{
				wordMap[c]++;
			}
			//逐一比較
			for (char c:words[i])
			{
				if (wordMap[c] > charMap[c]) {
					flag = false;
					break;
				}
			}
			if (flag) ans += words[i].size();
		}
		return ans;
	}
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章