Ruby 方法在字符串数组中对字谜进行分组

2023-11-22

我实现了一个对字谜进行分组的功能。 简而言之:

输入:['汽车'、'for'、'土豆'、'racs'、'四'、'疤痕'、'奶油'、尖叫']

输出:[[“汽车”、“赛车”、“疤痕”]、[“四”]、[“for”]、[“土豆”]、[“奶油”、“尖叫”]]

我想知道是否有更好的方法来做到这一点。 我真的认为我使用了太多的重复语句:until, select, delete_if。 有没有什么办法可以结合起来select and delete_if陈述?那 意思是,选中的项目可以自动删除吗?

Code:

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"]]

当然,如果您愿意,您可以将这句话变成一种方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby 方法在字符串数组中对字谜进行分组 的相关文章

随机推荐

  • 如何让 RecyclerView 对齐到中心,同时能够滚动到所有项目,同时中心被“选中”?

    背景 我尝试实现与相机应用程序的模式类似的功能 我可能不需要 ViewPager 因为它似乎在水平列表上方使用 但将它作为一个选项可能会很好 问题 虽然从技术上讲 我成功地让 RecyclerView 将其项目居中 但它并不让您实际上拥有能
  • 为什么我们应该在 C# 中使用文字?

    在一些 C 代码中我看到过这样的语句 float someFloat 57f 我想知道为什么我们应该使用像这样的文字f在上述情况下 主要是为了让编译器确切地知道我们的意思 特别是重载解析 Foo 57f 应该叫Foo int Foo flo
  • 如何在闪亮中创建加载事件或默认事件?

    我对shiny和stackoverflow都很陌生 正在寻求一些帮助来解决我目前遇到的问题 我正在尝试构建一个闪亮的应用程序 它收集用户的一些输入 并根据单击按钮的输入创建可视化 目前 这工作正常 但主要要求之一是 当应用程序第一次加载时
  • 如何在 jBoss AS 7 中配置静态资源

    我想将图像上传到服务器 将它们存储在文件系统 服务器外部 中 然后将它们显示在我的 JSF 页面上 我想找到这样的东西
  • 如何在seaborn中设置日期时间xlim

    我有一个数据框 df pd DataFrame max cr date 0 1569115380000 1 1569115500000 2 1569115560000 3 1569115620000 4 1569115680000 5 15
  • 真正的非零预测的损失惩罚更高

    我正在构建一个深度回归网络 CNN 来从图像 7 11 预测 1000 1 目标向量 目标通常由大约90 为零并且只有10 非零值 目标中 非 零值的分布因样本而异 即不存在全局类别不平衡 使用均方误差损失 这导致网络仅预测零 我对此并不感
  • 在 C# 中使用 Open Xml SDK 将数据表导出到 Excel

    我的程序能够将一些数据和数据表导出到 Excel 文件 模板 在模板中 我将数据插入到一些占位符中 它工作得很好 但我也需要插入一个数据表 我的示例代码 using Stream OutStream new MemoryStream rea
  • 是否可以使用 css3 旋转单词的字符而不是旋转整个单词

    我正在尝试将文本转换为div using onload窗口事件 我知道transform rotate 360deg scaleX 1 使整个单词旋转 但我需要旋转文本字符并在加载时将它们返回到相同的位置 My fiddle并去初始化它my
  • 用 FragmentActivity 和 Fragments 替换 TabActivity

    由于 TabActivity 已被弃用 我需要找到一种方法来使用 Fragments 来实现它 在知道 Fragments 是如何工作之前 我已经使用过它 但我需要一个指南来使用 FragmentActivities 创建我的选项卡主机 我
  • 为什么为具有引用成员变量的类生成默认复制因子?

    http coliru stacked crooked com a 8356f09dff0c9308 include
  • 如何循环遍历数据库中的所有表以更新列

    我正在尝试更新数据库中大多数表中存在的列 在本例中为日期 遗憾的是 我的数据库已经创建了 100 多个表 并且充满了信息 有什么方法可以循环它们并使用 UPDATE SET date 2016 04 20 WHERE name Exampl
  • 在PIL中打开图像文件时出错

    我正在尝试执行以下代码 from pytesser import import Image i C Documents and Settings Administrator Desktop attachments R1PNDTCB jpg
  • 值语义与具有大型数据结构的输出参数

    2013 年主题演讲 Chandler Carruth 优化 C 的新兴结构 42 45 您不需要输出参数 我们在 C 中有值语义 每当你看到有人争论 nonono 我不会按值返回 因为复制成本太高 从事优化器工作的人就会说他们错了 好的
  • 什么时候选择mouseover()和hover()函数?

    jQuery 之间有什么区别 mouseover and hover 功能 如果它们完全相同 为什么 jQuery 同时使用两者 来自 jQuery 官方文档 mouseover 将事件处理程序绑定到 mouseover JavaScrip
  • 内存管理和 std:: 分配器

    在审查我的代码时 我看到我使用了一些 丑陋 的结构 在一个类 称为 地图 中 我有一个包含 数据 类的向量 std vector
  • opencv命名窗口泄漏(c ++和opencv)

    运行 valgrind 我在 opencv 中遇到大量内存泄漏 尤其是使用namedWindow 函数时 总的来说 我有一个图像 CSImg 和 PGImg std string cs Computer Science Students s
  • R 中的 unicode 转换和导出

    我在下面创建了一个脚本 用于将 unicode 转换为中文字符 最后一个字符串temp df name unicode 是 不带引号 这样不懂中文的人也能帮忙 library RODBC library Unicode temp df lt
  • 如何使用 img 元素的 onerror 属性

    CSS posting logo div posting logo img height 120px width 120px posting photo div height 5px width 5px position relative
  • 模拟器启动等待 120 秒超时

    Teamcity 代理 TC 版本为 9 0 EAP 似乎启动时出现问题iOS Simulator通过测试 shell 脚本 I use Build Step Command Line 运行Custom Script并将参数传递给它 Tea
  • Ruby 方法在字符串数组中对字谜进行分组

    我实现了一个对字谜进行分组的功能 简而言之 输入 汽车 for 土豆 racs 四 疤痕 奶油 尖叫 输出 汽车 赛车 疤痕 四 for 土豆 奶油 尖叫 我想知道是否有更好的方法来做到这一点 我真的认为我使用了太多的重复语句 until