Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'prime'
- require 'minitest/autorun'
- class Anagram
- LETTER_MAP = ('a'..'z').zip(Prime.each).to_h
- def self.anagram?(word_1, word_2)
- word_hash(word_1) == word_hash(word_2)
- end
- def self.word_hash(word)
- word.chars
- .map {|w| LETTER_MAP[w]}
- .reduce(:*)
- end
- end
- describe Anagram do
- describe 'anagram?' do
- it 'returns true when two words are anagrams' do
- assert Anagram.anagram?('amor', 'roma')
- assert Anagram.anagram?('pai', 'pia')
- assert Anagram.anagram?('seu', 'use')
- assert Anagram.anagram?('alfa', 'fala')
- end
- it 'returns false when two words are not anagrams' do
- refute Anagram.anagram?('amor', 'rome')
- refute Anagram.anagram?('pai', 'piaa')
- refute Anagram.anagram?('seu', 'usse')
- refute Anagram.anagram?('alfa', 'fafa')
- end
- end
- end
Add Comment
Please, Sign In to add comment