Leetcode771:宝石与石头
原文链接:771. 宝石与石头 - 力扣(LeetCode)
题目
给你一个字符串 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 仅由英文字母组成
jewels 中的所有字符都是 唯一的
题解
方法一:
解题思路:用set存放宝石,遍历石头中的元素,查看set中是否存在
时间:1ms 空间:40.1MB
class Solution {public int numJewelsInStones(String jewels, String stones) {//定义一个set集合,用于存放宝石的种类HashSet<Character> jewel = new HashSet<>();int res=0;//定义结果//循环将宝石放入集合for(int i=0;i<jewels.length();i++){jewel.add(jewels.charAt(i)); }//遍历石头,如果找到存在集合中的宝石,则结果+1for(int j=0;j<stones.length();j++){if(jewel.contains(stones.charAt(j)))res++;}return res;}
}
方法二:
解题思路:用数组记录拥有的宝石,然后遍历stone
时间:0ms 空间:40MB
class Solution {public int numJewelsInStones(String jewels, String stones) {//定义一个正数数组,记录存在的宝石种类int[] ans = new int[58];for(int i=0;i<jewels.length();i++){//每一个位置对应一个宝石,存在时将该位置设置为1ans[jewels.charAt(i)-'A']=1;}//当前情况,宝石位置都为1,其余位置都为0int res = 0;for(int j=0;j<stones.length();j++){//判断石头中的元素存在于宝石数组中,则+1,否则+0res+=ans[stones.charAt(j)-'A'];}return res;}
}
方法三:
解题思路:双重循环
时间:0ms 空间:39.7MB
class Solution {public int numJewelsInStones(String jewels, String stones) {int res = 0;for (int i = 0; i < stones.length(); i++) {char stone = stones.charAt(i);for (int j = 0; j < jewels.length(); j++) {char jewel = jewels.charAt(j);if (stone == jewel) {res++;break;}}}return res;}
}
Leetcode771:宝石与石头相关推荐
- leetcode771. 宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符都是字母 ...
- leetcode771. 宝石与石头 py永远的神!
给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数. 示例 1: 输入:nums = [12,345,2,6,7896] 输出:2 解释: 12 是 2 位数字(位数为偶数) 345 ...
- 宝石与石头(简单难度)
目录 题目概述(简单难度) 思路与代码 思路展现 代码示例 总结 题目概述(简单难度) 题目链接: 宝石与石头 思路与代码 思路展现 将jewels字符串转换为字符后存入到set集合当中,然后将sto ...
- LeetCode 题库 全 JAVA 解题---771.宝石与石头
LeetCode 题库 全 JAVA 解题 771.宝石与石头 原题回顾: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥 ...
- 771. 宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符都是字母 ...
- 3600、宝石与石头
给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头. stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. 字母区 ...
- 【leetcode】771. 宝石与石头 (简单)
[leetcode]771. 宝石与石头 给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头. stones 中每个字符代表了一种你拥有的石头的类型,你 ...
- 【Swift】LeedCode 宝石与石头
[Swift]LeedCode 宝石与石头 由于各大平台的算法题的解法很少有Swift的版本,小编这边将会出个专辑为手撕LeetCode算法题. 给你一个字符串 jewels 代表石头中宝石的类型,另 ...
- java练习题:宝石和石头(map)
//宝石和石头 : J代表宝石的种类,不可以重复,例如J=aA,则宝石种类有a,A两种,S代表已拥有的石头个数,如S=aAAkk,则拥有的宝石有a,A,A三个 import java.util.*; ...
最新文章
- 《Arduino实战》——第1章 你好Arduino
- 构建高性能J2EE应用的五种核心策略
- atcode062D(预处理&优先队列)
- js+css立体旋转
- android java 实体类 object变量 保存_Android中Intent传递对象的两种方法Serializable,Parcelable...
- python 日志模块 日志格式
- c语言由n个斐波纳函数,6、C语言 —— 字符串
- 软件设计师12-数据库(数据操作)
- list(链表)容器
- GIMP 教程:如何在 GIMP 中创建曲线文本
- QT基础之QT5.12下载与安装
- 接口测试加密解密以及接口签名sign原理
- 软件技巧:优蛋开启出现Failed to set data for错误
- c语言中.cpp英文全称,.cpp与.c的区别
- 项目启动成功,但是Eureka页面不显示
- 后端返回数据中的换行符,在标签中不显示换行的解决方法
- 关于CStdioFile
- 拨乱反正!关于LoRaWAN的7个常见误解
- ArcGIS平台概述
- Kotlin使用泛型搭建一个MVP最简单实例