Tag: 字谜

如何简化或清理这个anagram方法?

我这里有一个方法,它接受一个字符串数组并将彼此的字符串组合在一起,每个组形成主anagram_groups数组的子数组。 输出很好,但我觉得我的代码可能过于复杂。 如何简化我的逻辑和/或语法,而不是将事情重构为更多方法? def combine_anagrams(words) anagram_groups = [] # For each word in array argument words.each do |word| # Tracking variable for the word word_added = false anagram_groups.each do |group| # Check if word already exists (prevents duplicates) if group.include? word word_added = true # Add word to group if it is an anagram of […]

Ruby方式在字符串数组中分组anagrams

我实现了一个分组字谜的function。 简而言之: 输入:[‘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 提前致谢,