zoukankan      html  css  js  c++  java
  • LeetCode 771 宝石与石头

    LeetCode 771 宝石与石头

    问题描述:
    给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
    J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。

    哈希表
    使用数组代替哈希表对各个字符的数量进行统计

    执行用时:1 ms, 在所有 Java 提交中击败了99.67%的用户
    内存消耗:37.2 MB, 在所有 Java 提交中击败了60.91%的用户

    class Solution {
        public int numJewelsInStones(String J, String S) {
            if(J==null || J.length()==0 || S==null || S.length()==0) {
                return 0;
            }
            
            char[] map = new char[52];
            for(char ch: S.toCharArray()) {
                if(ch-'a'>25 || ch-'a'<0) {
                    map[ch-'A'+26]++;
                }
                else {
                    map[ch-'a']++;
                }
            }
    
            int ans = 0;
            for(char ch: J.toCharArray()) {
                if(ch-'a'>25 || ch-'a'<0) {
                    ans += map[ch-'A'+26];
                }
                else {
                    ans += map[ch-'a'];
                }
            }
    
            return ans;
        }
    }
    
  • 相关阅读:
    知识点拾遗——装饰器
    知识点拾遗——函数部分
    re模块和分组
    re模块进阶
    面向对象总结
    模块总结整理
    项目目录结构
    日志(模块logging)
    位、字节、字符 概念
    socketserver实现并发通讯
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13764331.html
Copyright © 2011-2022 走看看