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

    package LeetCode_1160
    
    /**
     * 1160. Find Words That Can Be Formed by Characters
     * https://leetcode.com/problems/find-words-that-can-be-formed-by-characters/
     * You are given an array of strings words and a string chars.
    A string is good if it can be formed by characters from chars (each character can only be used once).
    Return the sum of lengths of all good strings in words.
    
    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. 1 <= words.length <= 1000
    2. 1 <= words[i].length, chars.length <= 100
    3. All strings contain lowercase English letters only.
     * */
    class Solution {
        /*
        * solution: Array, keep tracking if letter match,
        * Time:O(m*n), Space:O(1), m: size of words, n: longest length of word
        * */
        fun countCharacters(words: Array<String>, chars: String): Int {
            var result = 0
            //just handling lowercase
            val map = IntArray(26)
            for (c in chars) {
                map[c - 'a']++
            }
            for (word in words) {
                val map2 = map.clone()
                //current word's length
                var curLength = 0
                for (c in word) {
                    //if match one character,curLength++
                    if (map2[c - 'a'] > 0) {
                        map2[c - 'a']--
                        curLength++
                    }
                }
                if (curLength == word.length) {
                    result += curLength
                }
            }
            return result
        }
    }
  • 相关阅读:
    学习进度条 第十五周
    学习进度条 第十四周
    买书问题
    第二冲刺阶段 工作总结 10
    第二冲刺阶段 工作总结09
    05构建之法阅读笔记之五
    第二阶段工作总结 08
    React 浅析
    React 开发规范
    React 组件的生命周期
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14312722.html
Copyright © 2011-2022 走看看