热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

高效的Ruby代码,用于查找单词中唯一的每个单词的最短前缀

如何解决《高效的Ruby代码,用于查找单词中唯一的每个单词的最短前缀》经验,为你挑选了1个好方法。



1> spickermann..:

您可以使用Abbrev.abbrev生成明确缩写的列表.因为它生成一个哈希,缩写为键,单词为值,我们需要首先提取最短的缩写和交换键和值.

require 'abbrev'
word_to_abbr = Abbrev.abbrev(h.keys)
                     .group_by { |k, v| v }
                     .map { |k, v| [k, v.flatten.min_by(&:length)] }
                     .to_h

output = {}
h.each { |k, v| output[word_to_abbr[k].to_s] = v }

output
#=> {
#     "Wilhelm_C"  => "http://www.example.com/w2xtt4w/001_1901.jpg",
#     "Hen"        => "http://www.example.com/apbfksz/004_1902.jpg",
#     "P"          => "http://www.example.com/d2cpwj3/007_1902.jpg",
#     "An"         => "http://www.example.com/g8sueyg/010_1903.jpg",
#     "Mar"        => "http://www.example.com/gfcgur8/013_1903.jpg",
#     "Lor"        => "http://www.example.com/dcjiwq8/016_1904.jpg",
#     "Jos"        => "http://www.example.com/4a66bc9/019_1906.jpg",
#     "Ga"         => "http://www.example.com/xjefgoa/022_1908.jpg",
#     "Gug"        => "http://www.example.com/x359w62/025_1909.jpg",
#     "K"          => "http://www.example.com/1edm469/028_1909.jpg",
#     "Johannes_D" => "http://www.example.com/31hpue7/031_1910.jpg",
#     "Wilhelm_W"  => "http://www.example.com/yel9iff/034_1911.jpg",
#     "Nil"        => "http://www.example.com/iezss59/037_1912.jpg",
#     "Hei"        => "http://www.example.com/8zl4uj2/040_1913.jpg",
#     "Max_v"      => "http://www.example.com/ta3w6rn/043_1914.jpg",
#     "William_H"  => "http://www.example.com/u43qn5h/046_1915.jpg",
#     "William_L"  => "http://www.example.com/n7gkk6e/049_1915.jpg",
#     "Charles_G"  => "http://www.example.com/2kxxroc/052_1917.jpg",
#     "Max_P"      => "http://www.example.com/eyw7tm6/055_1918.jpg",
#     "Johannes_S" => "http://www.example.com/gcjcv2p/058_1919.jpg",
#     "Charles_É"  => "http://www.example.com/nox3s6o/061_1920.jpg",
#     "Nie"        => "http://www.example.com/mo9ga29/064_1922.jpg",
#     "R"          => "http://www.example.com/kxq71if/067_1923.jpg",
#     "Man"        => "http://www.example.com/2uwhw9y/070_1924.jpg",
#     "Ja"         => "http://www.example.com/iwdavip/073_1925.jpg",
#     "Gus"        => "http://www.example.com/73mbso2/076_1925.jpg",
#     "Je"         => "http://www.example.com/rgugmas/079_1926.jpg",
#     "Ar"         => "http://www.example.com/vy7is1v/082_1927.jpg",
#     "O"          => "http://www.example.com/3jz5ve8/085_1928.jpg",
#     "Lou"        => "http://www.example.com/srvj8d5/088_1929.jpg",
#     "John"       => "http://www.example.com/7op2wb1/091_1929.jpg",
#     "Chan"       => "http://www.example.com/1vqqwua/094_1930.jpg"
#   }


推荐阅读
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 常用API-Hashtable类及其与HashMap、HashSet的区别转载请表明出处:http:blog.csdn.netu012637501(嵌入式_小J的天空)一、Hashtable&l ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • PHPMailer邮件类邮件发送功能的使用教学及注意事项
    本文介绍了使用国外开源码PHPMailer邮件类实现邮件发送功能的简单教学,同时提供了一些注意事项。文章涵盖了字符集设置、发送HTML格式邮件、群发邮件以及避免类的重定义等方面的内容。此外,还提供了一些与PHP相关的资源和服务,如传奇手游游戏源码下载、vscode字体调整、数据恢复、Ubuntu实验环境搭建、北京爬虫市场、进阶PHP和SEO人员需注意的内容。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文介绍了解决mysql 5.1启动问题的方法,通过修改my.ini文件中的相关配置,包括innodb_data_home_dir和skip-innodb等,可以解决启动问题。同时还介绍了如何调整内存池来存储metadata信息。 ... [详细]
author-avatar
zhaojiapin_313
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有