mirror of
https://github.com/TheAlgorithms/Ruby
synced 2024-12-27 21:58:57 +01:00
46 lines
1,021 B
Ruby
46 lines
1,021 B
Ruby
# Challenge name: Uncommon words from two sentences
|
|
#
|
|
# We are given two sentences A and B.
|
|
# (A sentence is a string of space separated words.
|
|
# Each word consists only of lowercase letters.)
|
|
#
|
|
# A word is uncommon if it appears exactly once in one of the sentences,
|
|
# and does not appear in the other sentence.
|
|
#
|
|
# Return a list of all uncommon words.
|
|
# You may return the list in any order.
|
|
#
|
|
# Example 1:
|
|
# Input: A = "this apple is sweet", B = "this apple is sour"
|
|
# Output: ["sweet","sour"]
|
|
#
|
|
# Example 2:
|
|
# Input: A = "apple apple", B = "banana"
|
|
# Output: ["banana"]
|
|
|
|
#
|
|
# Approach 1: Hash
|
|
#
|
|
# Time Complexitiy: O(n)
|
|
|
|
def find_uncommon_words(strA, strB)
|
|
array = strA.concat(' ', strB).split(' ')
|
|
hash = Hash.new(0)
|
|
result = []
|
|
|
|
array.each do |word|
|
|
hash[word] += 1
|
|
end
|
|
|
|
hash.each do |k, v|
|
|
result.push(k) if v < 2
|
|
end
|
|
|
|
result
|
|
end
|
|
|
|
puts find_uncommon_words('this apple is sweet', 'this apple is sour')
|
|
# => ["sweet", "sour"]
|
|
|
|
puts find_uncommon_words('apple apple', 'banana')
|
|
# => ["banana"]
|