博客
关于我
916. Word Subsets
阅读量:432 次
发布时间:2019-03-06

本文共 1525 字,大约阅读时间需要 5 分钟。

要解决这个问题,我们需要找到数组A中所有满足条件的通用词。通用词的定义是,对于数组B中的每一个词b,b都是A中的这个词的子集。子集的定义是每个字母在b中出现的次数在A中的词中至少出现相同次数。

方法思路

  • 计算频率:对于每个B中的词b,计算其每个字母的出现次数,形成一个频率数组。
  • 确定最大频率:找出B中所有词的频率数组中每个字母的最大频率,形成max_freq数组。
  • 检查通用词:对于A中的每个词a,计算其每个字母的出现次数,检查其是否满足每个字母的频率都不低于max_freq中的对应值。如果满足,则将其加入结果列表。
  • 解决代码

    import java.util.ArrayList;
    import java.util.List;
    public class Solution {
    public List
    wordSubsets(String[] A, String[] B) {
    int[] maxFreq = new int[26];
    for (String b : B) {
    int[] freq = countLetters(b);
    for (int i = 0; i < 26; i++) {
    if (freq[i] > maxFreq[i]) {
    maxFreq[i] = freq[i];
    }
    }
    }
    List
    result = new ArrayList<>();
    for (String a : A) {
    int[] aFreq = countLetters(a);
    boolean isUniversal = true;
    for (int i = 0; i < 26; i++) {
    if (aFreq[i] < maxFreq[i]) {
    isUniversal = false;
    break;
    }
    }
    if (isUniversal) {
    result.add(a);
    }
    }
    return result;
    }
    private int[] countLetters(String s) {
    int[] count = new int[26];
    for (char c : s.toCharArray()) {
    count[c - 'a']++;
    }
    return count;
    }
    }

    代码解释

  • 计算频率countLetters方法遍历字符串,统计每个字母的出现次数,返回频率数组。
  • 确定最大频率:在主方法中,遍历B数组,更新maxFreq数组,记录每个字母的最大频率。
  • 检查通用词:对于A中的每个词,计算其频率数组,比较其与maxFreq数组,满足条件则加入结果列表。
  • 该方法高效且直接,能够在合理时间内处理大规模输入,确保结果的准确性和性能。

    转载地址:http://gftuz.baihongyu.com/

    你可能感兴趣的文章
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—6.ByteBuf原理二
    查看>>
    Netty源码—7.ByteBuf原理三
    查看>>
    Netty源码—7.ByteBuf原理四
    查看>>
    Netty源码—8.编解码原理二
    查看>>
    Netty源码解读
    查看>>
    Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
    查看>>
    Netty相关
    查看>>
    Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
    查看>>
    Network Sniffer and Connection Analyzer
    查看>>
    NetworkX系列教程(11)-graph和其他数据格式转换
    查看>>
    Networkx读取军械调查-ITN综合传输网络?/读取GML文件
    查看>>
    Net与Flex入门
    查看>>
    net包之IPConn
    查看>>
    NFinal学习笔记 02—NFinalBuild
    查看>>
    NFS共享文件系统搭建
    查看>>
    nfs复习
    查看>>
    NFS网络文件系统
    查看>>
    nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
    查看>>
    ng 指令的自定义、使用
    查看>>