zoukankan      html  css  js  c++  java
  • 1160. Find Words That Can Be Formed by Characters

    问题:

    给定一个字符串数组,和一个字典字符串,

    若字符串数组中的一个字符串中的所有字符,能够在字典字符串中一一对应找到(字典中每个字符只能用一次),则返回这个字符串的长度。

    最终返回满足条件的所有字符串长度之和。

    Example 1:
    Input: words = ["cat","bt","hat","tree"], chars = "atach"
    Output: 6
    Explanation: 
    The strings that can be formed are "cat" and "hat" so the answer is 3 + 3 = 6.
    
    Example 2:
    Input: words = ["hello","world","leetcode"], chars = "welldonehoneyr"
    Output: 10
    Explanation: 
    The strings that can be formed are "hello" and "world" so the answer is 5 + 5 = 10. 
    
    Note:
    1 <= words.length <= 1000
    1 <= words[i].length, chars.length <= 100
    All strings contain lowercase English letters only.
    

      

    解法:

    用dict[26]保存字典字符串中各个字符出现的次数。

    再轮询字符串数组的每个字符串,

    在dict中查找对应的字符,找到一个dict[i]--

    因此,dict每次对比的时候需要copy一份dic用来临时判断,以不影响下一个字符串的判断。

    代码参考:

     1 class Solution {
     2 public:
     3     int getcount(string str, vector<int> dict){
     4         int cnt=0;
     5         vector<int> dic(dict);
     6         for(char s:str){
     7             if(dic[s-'a']<=0) return 0;
     8             dic[s-'a']--;
     9             cnt++;
    10         }
    11         return cnt;
    12     }
    13     int countCharacters(vector<string>& words, string chars) {
    14         vector<int> dict(26);
    15         int res=0;
    16         for(char c:chars){
    17             dict[c-'a']++;
    18         }
    19         for(string str:words){
    20             res+=getcount(str, dict);
    21         }
    22         return res;
    23     }
    24 };
  • 相关阅读:
    旧贴-在 win7 / win8 下安装苹果系统 (懒人版)
    解决ios13摇一摇不能触发
    html+css面试合集
    Windows 2012 Server R2 添加用户
    Windows10专业版身份验证错误,可能由于CredSSP加密数据库修正
    STM32F4 7.STM32F4 独立看门狗
    STM32F4 6.STM32F4 外部中断
    STM32F4 5.STM32F4串口通讯
    STM32F4 4.STM32F4时钟系统
    STM32F4 3.GPIO按键输入,实现开关灯
  • 原文地址:https://www.cnblogs.com/habibah-chang/p/13124375.html
Copyright © 2011-2022 走看看