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 👏