gpt4 book ai didi

ruby-on-rails - 在字符串数组中对字谜进行分组的 Ruby 方法

转载 作者:数据小太阳 更新时间:2023-10-29 06:55:18 24 4
gpt4 key购买 nike

我实现了一个函数来对字谜进行分组。简而言之:

输入:['cars', 'for', 'potatoes', 'racs', 'four', 'scar', 'creams', scream']

输出:[["cars", "racs", "scar"], ["four"], ["for"], ["potatoes"],["creams", "scream"]]

我想知道是否有更好的方法来做到这一点。我真的觉得我用了太多的重复语句:until, select,删除_if。有什么办法可以结合 selectdelete_if 语句吗?那意思是,选中的item可以自动删除吗?

代码:

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

提前致谢

最佳答案

像那样:

 a = ['cars', 'for', 'potatoes', 'racs', 'four','scar', 'creams', 'scream']
a.group_by { |element| element.downcase.chars.sort }.values

输出是:

[["cars", "racs", "scar"], ["for"], ["potatoes"], ["four"], ["creams", "scream"]]

如果您愿意,您当然可以将这个单行代码变成一种方法。

关于ruby-on-rails - 在字符串数组中对字谜进行分组的 Ruby 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9646995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com