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
        }
    }
  • 相关阅读:
    oracle安装常见问题
    VM EXSI安装使用
    虚拟机---无法获取所有权
    Http常用状态码
    翻译:CommonJS的wiki
    如何在ie6/ie7/ie8中实现iframe背景透明
    网页版俄罗斯方块
    HTML5之pushstate、popstate操作history,无刷新改变当前url
    我们是如何做好前端工程化和静态资源管理
    dns-prefetch—DNS预解析技术
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14312722.html
Copyright © 2011-2022 走看看