千家信息网

如何解决leetcode中宝石与石头的问题

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"如何解决leetcode中宝石与石头的问题",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何解决leetcode中宝石与石头的问
千家信息网最后更新 2026年11月02日如何解决leetcode中宝石与石头的问题

这篇文章主要为大家展示了"如何解决leetcode中宝石与石头的问题",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何解决leetcode中宝石与石头的问题"这篇文章吧。

题目链接

https://leetcode-cn.com/problems/jewels-and-stones/

题目描述

给定字符串 J 代表石头中宝石的类型,和字符串 S 代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

J 中的字母不重复,J 和 S 中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。

示例 1:

输入: J = "aA", S = "aAAbbbb"
输出: 3

示例 2:

输入: J = "z", S = "ZZ"
输出: 0

注意:

  • S 和 J 最多含有50个字母。

  • J 中的字符不重复。

解题方案

思路

  • 标签:字符串

  • 首先对J进行遍历,将字符分别存到HashSet中,以便之后遍历S的时候查找

  • 遍历S,并将每个字符与HashSet中的进行比对,如果存在,则结果ans++,遍历结束,返回ans

  • 时间复杂度:O(m+n),m为J的长度,n为S的长度

代码

  • Java版本

class Solution {
public int numJewelsInStones(String J, String S) {
Set set = new HashSet<>();
for(int i = 0; i < J.length(); i++) {
set.add(J.charAt(i));
}
int ans = 0;
for(int i = 0; i < S.length(); i++) {
if(set.contains(S.charAt(i))){
ans++;
}
}
return ans;
}
}
  • JavaScript版本

/**
* @param {string} J
* @param {string} S
* @return {number}
*/
var numJewelsInStones = function(J, S) {
const set = new Set();
for(const s of J) {
set.add(s);
}
let ans = 0;
for(const s of S) {
if(set.has(s)){
ans++;
}
}
return ans;
};

画解

以上是"如何解决leetcode中宝石与石头的问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

石头 字符 宝石 字母 问题 代表 内容 字符串 篇文章 类型 版本 示例 长度 题目 学习 帮助 输入 输出 不同 复杂 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 新华互联网科技 云信互联网科技有限公司 关于新基建和互联网科技 与互联网科技公司 互联网公司 科技公司 紫鲸互联网科技 互联网科技宣传片 四个字互联网科技公司取名 富国互联网科技创新基金 博兴的互联网电子科技公司 中国互联网有什么科技含量 华夏互联网科技业 伊宁互联网科技做什么的 工业互联网展湾科技股份有限公司 南通创西澳互联网科技有限公司 福仕德教育科技互联网 第三届互联网大会安防黑科技 东风日产互联网科技公司叫什么 互联网高科技绘画 互联网科技企业文化 新华互联网科技 苏州大垚互联网科技 互联网科技有限公司 翻译 无锡溥仪互联网科技有限公司 辽宁互联网新科技 黑科技 体验场景 互联网大会 富国互联网金融科技混合基金 九思连强互联网电子科技有限公司 互联网硬科技公司 北京品多多互联网科技有限公司
0