1 Line
This approach is based on Ruby’s String#count
method. It takes the string j
as the set of characters to count in the string s
. This is the fastest and the simplest solution.
Time complexity: O(j.length+ s.length)
Extra memory: O(1)
Hash
def num_jewels_in_stones(j, s)
stones = Hash.new 0
s.each_char do |char|
stones[char] += 1
end
sum = 0
j.each_char do |char|
sum += stones[char]
end
return sum
end
First, we iterate through the string s
and create a hash called stones
that uses the characters in s
as keys and their occurrence as values. Then we go through each character of j
and sum up their occurrences.
Time complexity: O(j.length+ s.length)
Extra memory: O(s.length)
Top comments (1)
Awesome solution. This is my favourite problem on LeetCode. It’s a simple introduction to hashmaps and why they’re amazing 👏