我实现了一个分组字谜的功能.简而言之:
输入:['cars','for','potato','racs','four','scar','cream',scream']
输出:[["cars","racs","scar"],["four"],["for"],["potato"],["cream","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
Run Code Online (Sandbox Code Playgroud)
提前致谢,