Leecode 1160. 拼写单词

简介: Leecode 1160. 拼写单词
class Solution {
    public int countCharacters(String[] words, String chars) {
        int[] charsOfCase = new int[26];//统计字符表中的字符
        int count = 0;//单词长度之和
        for(char c : chars.toCharArray()){//统计字符表中的字符
            charsOfCase[c-'a']++;
        }
        for(String str : words){
            int[] temp = new int[26];
            boolean flag = true;
            for(char c : str.toCharArray()){//存储统计词汇表中单词的字符
                temp[c-'a']++;
            }
            for(int i = 0; i < charsOfCase.length; i++){//对比两个统计数据
                if(temp[i] > charsOfCase[i]){
                    flag = false;
                    break;
                }
            }
            if(flag) count += str.length();
        }
        return count;
    }
}

这种执行效率不高

我们可以把字母表中的长度与词汇表中每一个词汇的长度对比放在存储统计词汇表中单词的字符前面,这样子可以减少一些比较,缩短了执行时间

class Solution {
    public int countCharacters(String[] words, String chars) {
        int len = 0;
        char[] cs = new char[26];
        for (char c : chars.toCharArray()) {
            cs[c - 'a']++;
        }
        for (String str : words) {
            boolean flag = true;
            //如果长度大于chars数组,直接不用比较
            if (chars.length() < str.length()) {
                flag = false;
            } else {
                char[] temp = new char[26];
                for (char t : str.toCharArray()) {
                    temp[t - 'a']++;
                    if(temp[t - 'a'] > cs[t - 'a']) {
                        flag = false;
                        break;
                    }
                }
            }
            if (flag) {
                len += str.length();
            }
        }
        return len;
    }
}


相关文章
|
存储 索引
【软考学习15】索引文件结构、直接索引和间接索引
【软考学习15】索引文件结构、直接索引和间接索引
926 0
|
6月前
|
算法 Linux 网络性能优化
毅硕HPC | 配置SLURM作业队列优先级
本文介绍在Slurm系统环境下,当出现作业提交或作业状态变化时,如何通过恰当的队列配置策略来实现尽可能多的任务调度处理,以达到最佳性能。
373 1
|
机器学习/深度学习 人工智能 算法
o3-mini:OpenAI 发布最新推理模型,强大的STEM推理能力,灵活调整推理强度
OpenAI o3-mini是OpenAI推出的全新推理模型,专为科学、数学和编程等技术领域优化,支持三种推理强度,灵活调整性能。
825 25
o3-mini:OpenAI 发布最新推理模型,强大的STEM推理能力,灵活调整推理强度
|
机器学习/深度学习
YOLOv11改进策略【Conv和Transformer】| CVPR-2024 Single-Head Self-Attention 单头自注意力
YOLOv11改进策略【Conv和Transformer】| CVPR-2024 Single-Head Self-Attention 单头自注意力
465 7
YOLOv11改进策略【Conv和Transformer】| CVPR-2024 Single-Head Self-Attention 单头自注意力
|
Python 开发工具
第三方支付黑马-CodePay 码支付使用(二)
自古以来有关钱的事情都会特别复杂, 无论是人还是物! 在很多项目中我们都会用到支付功能, 市面上目前存在的银联支付, 支付宝支付, 微 信支付等等第三方支付都会遇到比较复杂的流程, 不是合格的商家公司是没法使用的! 而码支付CodePay打破了这个常规, 虽然作为第三方支付平台, 但是这个平台只提供支付结果订单的结算, 并不对接现金流! 采用的是个人/商家自己的收款码现金是直接到账的形式!
第三方支付黑马-CodePay 码支付使用(二)
|
数据安全/隐私保护
如何用wireshark查看snmpv3报文
如何用wireshark查看snmpv3报文
878 2
|
网络协议 Ubuntu Unix
Linux 下使用 socket 实现 TCP 客户端
Linux 下使用 socket 实现 TCP 客户端
619 1
|
机器学习/深度学习 自然语言处理 算法
深度学习中的自适应神经网络:理论与应用
【7月更文挑战第1天】本文旨在探究自适应神经网络在深度学习领域的理论基础及其在多个应用场景中的实际效能。通过分析自适应机制如何优化网络结构,提高学习效率和模型泛化能力,我们进一步讨论了自适应神经网络面临的主要挑战及未来发展方向。
|
JavaScript 前端开发 C#
什么是三元表达式?“三元”表示什么意思?
什么是三元表达式?“三元”表示什么意思?
|
存储 NoSQL Cloud Native
云原生数据库 Tair(一)
云原生数据库 Tair(一)
566 1