771.Jewels and Stones (leetcode)
2018-01-28 20:45
417 查看
Jewels and Stones
Jewels and Stones题目
解决
题目
leetcode题目You’re given strings
Jrepresenting the types of stones that are jewels, and
Srepresenting the stones you have. Each character in
Sis a type of stone you have. You want to know how many of the stones you have are also jewels.
The letters in
Jare guaranteed distinct, and all characters in
Jand
Sare letters. Letters are case sensitive, so “a” is considered a different type of stone from “A”.
Example 1:
Input: J = "aA", S = "aAAbbbb" Output: 3
Example 2:
Input: J = "z", S = "ZZ" Output: 0
Note:
Sand
Jwill consist of letters and have length at most 50.
The characters in
Jare distinct.
解决
1.通过遍历字符串S和
J,两两进行比较,判断stone中有多少颗jewel。
时间复杂度为O(s * j)。(s为字符串S的长度,j为字符串J的长度)
空间复杂度为O(1)。
class Solution { public: int numJewelsInStones(string J, string S) { int result = 0; int jlen = J.length(); int slen = S.length(); for (int i = 0; i < slen; i++) { for (int j = 0; j < jlen; j++) { if (S[i] == J[j]) { result++; break; } } } return result; } };
2.通过hash的方法,先将字符串
J中的每个字符串当作key存起来,再遍历字符串
S,检查是否存在这些key。
时间复杂度为O(s + j)。(s为字符串S的长度,j为字符串J的长度)
空间复杂度为O(j)。
class Solution { public: int numJewelsInStones(string J, string S) { int result = 0; int jlen = J.length(); int slen = S.length(); unordered_map<char, int> stone; for (int i = 0; i < jlen; i++) { stone[J[i]] = 1; } for (int i = 0; i < slen; i++) { // 检查是否存在对应的key if (stone.find(S[i]) != stone.end()) { result++; } } return result; } };
相关文章推荐
- 【leetcode】771. Jewels and Stones
- [Leetcode] 771. Jewels and Stones 解题报告
- LeetCode之771:Jewels and Stones
- LeetCode 开坑纪念-水题771-Jewels and Stones
- LeetCode 771. Jewels and Stones
- python实现 leetcode 771 jewels and stones
- 771. Jewels and Stones
- 771. Jewels and Stones
- LeetCode之Jewels and Stones(Kotlin)
- 771. Jewels and Stones
- 771. Jewels and Stones
- 771- Jewels and Stones[C++]
- LWC 69: 771. Jewels and Stones
- 771. Jewels and Stones。
- 771. Jewels and Stones
- 771. Jewels and Stones
- codechef Jewels and Stones 题解
- LC-Jewels and Stones
- [Leetcode] 771. Jewels and Stones
- 【LeetCode】771. Jewels and Stones 解题报告