码迷,mamicode.com
首页 > 其他好文 > 详细

1160. Find Words That Can Be Formed by Characters 拼写单词 (统计字母数量的常用方法)

时间:2020-03-17 22:36:19      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:rds   出现   form   简单   字母   bre   orm   code   col   

题目:

技术图片


 思路:

思路很简单,只要分别统计chars中和每个单词中字母出现的个数,chars中的字母大于等于每个单词中的字母的个数,这个单词便是good

可以利用C++中的map实现,现在记录一种更灵活更常用的方式,凡是要统计字母个数,都可以这样处理:

创建一个数组vec[26],每个位置分别存储的是26个字母中对应字母的个数,以 char - a  的方式得到字母的索引

代码:

class Solution {
public:
    vector<int> getV(string strings){
        vector<int> res(26);
        for(char str: strings){
            res[str - a]++;
        }
        return res;
    }
    int countCharacters(vector<string>& words, string chars) {
        vector<int> vec = getV(chars);
        vector<int> cur;
        int res=0;
        for(string word: words){
            cur = getV(word);
            int i;
            for(i=0; i<26; i++){
                if(cur[i] > vec[i]) break;
            }
            if(i == 26) res+=word.size();
        }
        return res;
    }
};

 

1160. Find Words That Can Be Formed by Characters 拼写单词 (统计字母数量的常用方法)

标签:rds   出现   form   简单   字母   bre   orm   code   col   

原文地址:https://www.cnblogs.com/ech2o/p/12513935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!