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的数组里面作为参数传递:
-----解答分割线-----
原题和一些解法在这里:[url]http://rubyquiz.com/quiz20.html[/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]