当前位置:   article > 正文

2019-12-31-LeetCode【1160. 拼写单词】_有一个字符串数组words和一个字符串chars。

有一个字符串数组words和一个字符串chars。

1160. 拼写单词

  1. 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。
  2. 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。
  3. 注意:每次拼写时,chars 中的每个字母都只能用一次。
  4. 返回词汇表 words 中你掌握的所有单词的 长度之和。
  5. 来源:力扣(LeetCode)
  6. 链接:https://leetcode-cn.com/problems/find-words-that-can-be-formed-by-characters
  7. 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
  1. 示例 1
  2. 输入:words = ["cat","bt","hat","tree"], chars = "atach"
  3. 输出:6
  4. 解释:
  5. 可以形成字符串 "cat""hat",所以答案是 3 + 3 = 6
  6. 示例 2
  7. 输入:words = ["hello","world","leetcode"], chars = "welldonehoneyr"
  8. 输出:10
  9. 解释:
  10. 可以形成字符串 "hello""world",所以答案是 5 + 5 = 10
  11. 来源:力扣(LeetCode)
  12. 链接:https://leetcode-cn.com/problems/find-words-that-can-be-formed-by-characters
  13. 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
  1. 提示:
  2. 11 <= words.length <= 1000
  3. 21<= words[i].length, chars.length <= 100
  4. 3、所有字符串中都仅包含小写英文字母
  5. 来源:力扣(LeetCode)
  6. 链接:https://leetcode-cn.com/problems/find-words-that-can-be-formed-by-characters
  7. 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

先统计会的字母的个数,用一个26个的数组表示;再遍历每一个单词,统计其中的字母出现的次数;遍历26个索引,如果这个单词的次数有小于统计的次数的,那么就舍弃这个单词,统计下一个单词的字母出现次数;直到有一个单词的字母出现次数小于等于总的次数,这时候res加上这个单词的长度。

 代码

  1. class Solution {
  2. public:
  3. //初步思路 创建一个数组统计chars里面每一个字符出现的次数;遍历每一个单词,如果每一个的字母的次数都>=1那么最后加上这个单词的长度。
  4. int countCharacters(vector<string>& words, string chars) {
  5. int times[26]={0};
  6. for(auto i=0;i<chars.size();i++)
  7. {
  8. times[(int)chars[i]-'a']++;
  9. }
  10. int res=0;//统计总的次数
  11. for(int i=0;i<words.size();i++)
  12. {
  13. int flag=1;
  14. int time_temp[26]={0};
  15. for(int j=0;j<words[i].size();j++)
  16. {
  17. time_temp[(int)words[i][j]-'a']++;
  18. }
  19. for(int i=0;i<26;i++)
  20. {
  21. if(time_temp[i]>times[i])
  22. {flag=0;break;}
  23. }
  24. //对刚刚通过的单词的字母次数减1
  25. if(flag==1)
  26. {
  27. // for(int j=0;j<words[i].size();j++)
  28. // {
  29. // // times[(int)words[i][j]-'a']--;
  30. // res++;
  31. // }
  32. res+=words[i].size();
  33. }
  34. }
  35. return res;
  36. }
  37. };

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/705345
推荐阅读
相关标签
  

闽ICP备14008679号