Ruby每周一测 - 容易记的电话号码

RubyQuiz是一项持续活动,每周提出一个编程题目供社区解答。本期挑战为实现一个方法,将数字电话号码转换成可能对应的英文单词,旨在简化记忆。示例:将8737829转换为USE-RUBY。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ruby每周一测 - [url=http://rubyquiz.com/]Ruby Quiz[/url] 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: [url=http://www.amazon.com/Best-Ruby-Quiz-Pragmatic-Programmers/dp/0976694077]Best of Ruby Quiz[/url]。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。

-----题目分割线-----

以前在国外的影视或者广告中看到出现含字母的电话号码,比如1-800-PICK-UPS (美国UPS快递号码),心中不免有些疑惑:难道国外的电话是可以拨字母的?后来请教国外朋友,才明白这个疑问有点傻有点天真 :) 看一下常见的电话键盘:
[img]/upload/attachment/20715/8c4abc11-ff4a-33a4-b70a-eda64ebaf69d.jpg[/img]
每个数字旁边都有3个或者4个字母对应,那么上面这个电话号码其实就是1-800-7425-877,这样就把一个难记的电话号码通过简单的单词记住了。这周的题目就是完成下面这个方法,通过查找字典把输入的数字变成可能的字母输出,比如输入8737829得到USE-RUBY,为了编程简单,这里假设字典文件已经被读取到一个words的数组里面作为参数传递:

def build_word_list(number, words = %w{USE RUBY} , mapping = %w{ABC DEF GHI JKL MNO PQRS TUV WXYZ}, delimeter = "-")

end


-----解答分割线-----
原题和一些解法在这里:[url]http://rubyquiz.com/quiz20.html[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值