Leetcode 916 单词子集 ASC码计数

  通过 ASC 码计数进行子集判断,JAVA:

复制代码
    public final List<String> wordSubsets(String[] A, String[] B) {
        List<String> reList = new LinkedList<String>();
        int[] bChars = new int[26];
        for (String b : B) {
            int[] currentBChars = getChars(b);
            for (int i = 0; i < 26; i++) {
                bChars[i] = Math.max(bChars[i], currentBChars[i]);
            }
        }
        for (String a : A) {
            boolean isSub = true;
            int[] aChars = getChars(a);
            for (int i = 0; i < 26; i++) {
                if (aChars[i] < bChars[i]) {
                    isSub = false;
                    break;
                }
            }
            if (isSub) reList.add(a);
        }
        return reList;
    }

    private final int[] getChars(String s) {
        int[] charsArr = new int[26];
        for (char c : s.toCharArray()) {
            charsArr[c - 'a']++;
        }
        return charsArr;
    }
复制代码

 

复制代码
 /**
 * @param {string[]} A
 * @param {string[]} B
 * @return {string[]}
 */
var wordSubsets = function (A, B) {
    let reArr = [], bChars = new Array(26).fill(0);
    for (let i = 0; i < B.length; i++) {
        let b = B[i], currentBChars = getChars(b);
        for (let i = 0; i < 26; i++) {
            bChars[i] = Math.max(bChars[i], currentBChars[i]);
        }
    }
    for (let i = 0; i < A.length; i++) {
        let a = A[i], aChars = getChars(a), isSub = true;
        for (let i = 0; i < 26; i++) {
            if (aChars[i] < bChars[i]) {
                isSub = false;
                break;
            }
        }
        if (isSub) reArr.push(a);
    }
    return reArr;
};

var getChars = function (s) {
    let reArr = new Array(26).fill(0);
    for (let i = 0; i < s.length; i++) {
        reArr[s[i].charCodeAt() - 97]++;
    }
    return reArr;
}
复制代码

posted @   牛有肉  阅读(97)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示