• LeetCode 1160. Find Words That Can Be Formed by Characters


    1160. Find Words That Can Be Formed by Characters(拼写单词)

    链接

    https://leetcode-cn.com/problems/find-words-that-can-be-formed-by-characters

    题目

    给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。

    假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。

    注意:每次拼写时,chars 中的每个字母都只能用一次。

    返回词汇表 words 中你掌握的所有单词的 长度之和。

    示例 1:

    输入:words = ["cat","bt","hat","tree"], chars = "atach"
    输出:6
    解释:
    可以形成字符串 "cat" 和 "hat",所以答案是 3 + 3 = 6。
    示例 2:

    输入:words = ["hello","world","leetcode"], chars = "welldonehoneyr"
    输出:10
    解释:
    可以形成字符串 "hello" 和 "world",所以答案是 5 + 5 = 10。

    提示:

    1 <= words.length <= 1000
    1 <= words[i].length, chars.length <= 100
    所有字符串中都仅包含小写英文字母

    思路

    仅包含小写字母,那么就可以拿数组存储,之后比较单词中各个字母数量和给的字母数量,全部满足才能成立,最后统计一下长度即可。

    代码

       public int countCharacters(String[] words, String chars) {
        int[] num = new int[26];
        int count = 0;
        getnum(chars, num);
        for (String s : words) {
          if (fit(s, num)) {
            count += s.length();
          }
        }
        return count;
      }
    
      public void getnum(String chars, int[] num) {
        StringBuffer str = new StringBuffer(chars);
        for (int i = 0; i < str.length(); i++) {
          num[str.charAt(i) - 'a']++;
        }
      }
    
      public boolean fit(String word, int[] num) {
        int[] wordnum = new int[26];
        getnum(word, wordnum);
        boolean flag = true;
        for (int i = 0; i < 26; i++) {
          if (wordnum[i] > num[i]) {
            flag = false;
          }
        }
        return flag;
      }
    
  • 相关阅读:
    小程序的媒体组件
    微信小程序开发系列之Hello World
    centos 6 mysql 5.6 源码安装
    php 源码安装
    centos7 源码安装nginx
    CentOS 7.2部署MariaDB Galera Cluster(10.1.21-MariaDB) 3主集群环境
    MySQL读写分离
    MySQL主从复制(Master-Slave)实践
    lvs+keepalived+nginx负载均衡搭建
    Kubernetes在CentOS7下二进制文件方式安装、离线安装
  • 原文地址:https://www.cnblogs.com/blogxjc/p/12509660.html
Copyright © 2020-2023  润新知