【发布时间】:2012-03-27 16:01:22
【问题描述】:
我实现了一个对字谜进行分组的功能。 简而言之:
输入:['cars','for','potatoes','racs','four','scar','creams',scream']
输出:[["cars", "racs", "scar"], ["four"], ["for"], ["potatoes"],["creams", "scream"]]
我想知道是否有更好的方法来做到这一点。
我真的认为我使用了太多重复语句:until,select,
delete_if。
有什么方法可以结合select 和delete_if 语句?那
意思是,选择的项目可以自动删除吗?
代码:
def group_anagrams(words)
array = []
until words.empty?
word = words.first
array.push( words.select { |match| word.downcase.chars.sort.join.eql?(match.downcase.chars.sort.join ) } )
words.delete_if { |match| word.downcase.chars.sort.join.eql?(match.downcase.chars.sort.join ) }
end
array
end
提前致谢,
【问题讨论】:
标签: ruby-on-rails ruby anagram