六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 46|回复: 0

Ruby每周一测

[复制链接]

升级  32%

22

主题

22

主题

22

主题

秀才

Rank: 2

积分
98
 楼主| 发表于 2013-1-27 05:28:11 | 显示全部楼层 |阅读模式
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。

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

以前在国外的影视或者广告中看到出现含字母的电话号码,比如1-800-PICK-UPS (美国UPS快递号码),心中不免有些疑惑:难道国外的电话是可以拨字母的?后来请教国外朋友,才明白这个疑问有点傻有点天真  看一下常见的电话键盘:

每个数字旁边都有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

-----解答分割线-----
原题和一些解法在这里:http://rubyquiz.com/quiz20.html
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表