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

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

要解决这个问题,我们需要找到数组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/

    你可能感兴趣的文章
    Objective-C实现LowerCaseConversion小写转换算法(附完整源码)
    查看>>
    Objective-C实现lowest common ancestor最低共同祖先算法(附完整源码)
    查看>>
    Objective-C实现LRU 缓存算法(附完整源码)
    查看>>
    Objective-C实现LRU缓存(附完整源码)
    查看>>
    Objective-C实现lstm prediction预测算法(附完整源码)
    查看>>
    Objective-C实现lucas数列算法(附完整源码)
    查看>>
    Objective-C实现Luhn (Mod 10)Algorithm算法(附完整源码)
    查看>>
    Objective-C实现LZW编码(附完整源码)
    查看>>
    Objective-C实现MAC桌面暗水印(附完整源码)
    查看>>
    Objective-C实现mandelbrot曼德勃罗特集算法(附完整源码)
    查看>>
    Objective-C实现markov chain马尔可夫链算法(附完整源码)
    查看>>
    Objective-C实现MATLAB中Filter函数功能(附完整源码)
    查看>>
    Objective-C实现matrix chainorder矩阵链顺序算法(附完整源码)
    查看>>
    Objective-C实现matrix exponentiation矩阵求幂算法(附完整源码)
    查看>>
    Objective-C实现MatrixMultiplication矩阵乘法算法 (附完整源码)
    查看>>
    Objective-C实现max non adjacent sum最大非相邻和算法(附完整源码)
    查看>>
    Objective-C实现max subarray sum最大子数组和算法(附完整源码)
    查看>>
    Objective-C实现max sum sliding window最大和滑动窗口算法(附完整源码)
    查看>>
    Objective-C实现MaxHeap最大堆算法(附完整源码)
    查看>>
    Objective-C实现MaximumSubarray最大子阵列(Brute Force蛮力解决方案)算法(附完整源码)
    查看>>