dictionary = ['acres', 'cares', 'Cesar', 'races', 'smelt', 'melts', 'etlsm']
def anagrams_for(word, array)
matches = []
array.each do |x|
if word.downcase.chars.sort == x.downcase.chars.sort
matches.push(x)
end
end
puts matches
end
Wenn das Eingabewort im Wörterbuch enthalten ist, sollte es im zurückgegebenen Array enthalten sein.Anagrammcode ohne Verwendung einer Schleife
Die Liste sollte nicht zwischen Groß- und Kleinschreibung unterschieden werden.
anagrams_for('acres', dictionary) # => ['acres', 'cares', 'Cesar', 'races']
anagrams_for('ACRES', dictionary) # => ['acres', 'cares', 'Cesar', 'races']
anagrams_for('Cesar', dictionary) # => ['acres', 'cares', 'Cesar', 'races']
Obwohl "sacre"
ist nicht im Wörterbuch, mehrere Wörter im Wörterbuch sind Anagramme von "sacre"
.
Weder das Eingangswort noch die Wörter im Wörterbuch müssen gültige englische Wörter sein.
anagrams_for('etlsm', dictionary) # => ['smelt', 'melts', 'etlsm']
anagrams_for('unicorn', dictionary) # => []
Gibt es eine Methode, die nicht Looping erfordert das gleiche Ergebnis zu erzielen?
Danke, das ist sehr elegant. – Cozzie