zoukankan      html  css  js  c++  java
  • 单词拼写

    单词拼写

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

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

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

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

    示例:

    输入:words = ["cat","bt","hat","tree"], chars = "atach"

    输出:6

    解释:

    可以形成字符串 "cat" 和 "hat",所以答案是 3 + 3 = 6。

    来源:力扣(LeetCode)

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

    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解题思路:首先通过对单词表进行遍历,得到每个单词,在对每个单词进行遍历,得到每个单词的字母,接着统计出这个字母在单词中出现的次数(题目要求只能出现一次),以及统计这个单词在字母表中出现的次数,如果这个字母在单词中出现的次数大于一次,那么直接跳出循环,接着判断这个字母在单词中出现的频次是否大于在字母表中出现的频次,如果大于跳出循环(为了验证字母不在字母表的情况),否则对计数器进行加一操作。

    class Solution:
        def countCharacters(self, words: List[str], chars: str) -> int:
            ans = 0
            for w in words:
                for i in w:
                    if w.count(i) > 1:
                        break
                    if w.count(i) > chars.count(i):
                        break
                else:
                    ans+=len(w)
            return ans
  • 相关阅读:
    maven插件安装与使用
    java面试题
    关于java的GC
    技术人员要树立自己的品牌
    为什么IT公司都应该鼓励开源
    你应该坚持写博客 即使没有读者
    计算机基础
    收藏 | 产品经理不可不知的 7 种技术思维
    我讨厌你公事公办的样子
    子序列问题【LIS、LCS、LCIS】
  • 原文地址:https://www.cnblogs.com/huiyichanmian/p/12514932.html
Copyright © 2011-2022 走看看