每日一题20201105(771. 宝石与石头)

简介: 暴力解法和hash表

暴力解法



class Solution:
    def numJewelsInStones(self, J: str, S: str) -> int:
        total = 0
        for j in J:
            for s in S:
                if s == j:
                    total+=1
        return total


很简单,就不多说了,依次遍历,复杂度O(N²)

hash表



class Solution:
    def numJewelsInStones(self, J: str, S: str) -> int:
        mp = {x: 0 for x in J}
        for s in S:
            if mp.get(s) is not None:
                mp[s] += 1
        return sum(mp.values())


  • 先创建一个map, 里面存放类型
  • 遍历字符串,如果找到了类型,则map里面的值+1
  • 累加所有map的value




相关文章
|
5天前
|
算法
算法刷题(二十二):宝石与石头
算法刷题(二十二):宝石与石头
42 0
|
7月前
【Leetcode -766.托普利茨矩阵 -771.宝石与石头】
【Leetcode -766.托普利茨矩阵 -771.宝石与石头】
33 0
|
5天前
|
安全 C++
石头剪子布(字符串解法 C++)
石头剪子布(字符串解法 C++)
20 0
|
8月前
[NOIP2015]跳石头
[NOIP2015]跳石头
|
10月前
|
数据采集 算法 数据挖掘
【每周一坑】螺旋矩阵
今天这题,看起来挺简单,实际写出来并不容易。在以前公司我曾把它做过招聘的笔试题,结果惨不忍睹,不得不拿掉。
【每周一坑】螺旋矩阵
|
11月前
|
存储
剑指Offer - 面试题14:剪绳子
剑指Offer - 面试题14:剪绳子
58 0
|
11月前
|
机器学习/深度学习
剑指offer 13. 剪绳子
剑指offer 13. 剪绳子
51 0
771. 宝石与石头
 给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 字母区分大小写,因此 "a" 和 "A" 是不同类型的石头。   示例 1: 输入:jewels = "aA", stones = "aAAbbbb" 输出:3 示例 2: 输入:jewels = "z", stones = "ZZ" 输出:0   提示: 1 <= jewels.length, stones.length <= 50 jewels 和 stones 仅由英文字母组成
60 0
LeetCode 771. 宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。
84 0
PAT刷题笔记-PAT乙1018-锤子剪刀布
PAT刷题笔记-PAT乙1018-锤子剪刀布
101 0
PAT刷题笔记-PAT乙1018-锤子剪刀布