leetcode第1160题拼写单词
方法一:哈希表暴力法
- 用一个哈希表来统计字母表中每个字符的个数
- 再依次统计每个单词的每个字符的个数
- 如果这个单词每个字符的数量都小于等于字母表中字符的个数就说明可以被拼写出来
class Solution {
public:int countCharacters(vector<string>& words, string chars) {//用哈希表记录字母表中的字符串的个数map<char,int> letter;//统计结果的单词的长度和int res=0;for(char ch:chars){letter[ch]++;}for(string vocabulary:words){//用于标记能不能拼出单词int flag=1;map<char,int> word;//依次把单词放进哈希表里,统计每个单词中各个字符出现的次数for(char ch:vocabulary){word[ch]++;}//当单词中的有字符的数大于字母表的字符数时就不可以拼写出单词,把flag置为0for(char ch:vocabulary){if(word[ch]>letter[ch]){flag=0;break;}}//如果全部字符都小于等于字母表字符数时就可以拼写出单词,把单词的长度添加进掌握单词的长度里if(flag==1)res=res+vocabulary.size();}return res;}
};
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
