Ruby每週一測 日期範圍

2021-08-22 18:54:30 字數 890 閱讀 6512

-----題目分割線-----

如果你做過一些需要處理週期性活動的應用(例如日曆),就可能會遇到需要乙個轉換方法將資料庫儲存的數字串變成使用者易讀的字串。

例如乙個**家每週的周一,周二,週三和週六有固定演出,你資料庫裡面儲存的是1,2,3,6,但是需要顯示成"mon-wed, sat"

這次每週一測目的是要找到「ruby way」來解決這個問題。

轉化的基本規則是:

* 乙個類的構建器,接受代表天數的引數列表,實現to_s方法,輸出轉化好的結果

* 引數列表是排好序的

* 連續3天及以上的,產生結果用-代表範圍

* 一些例子

1,2,3,4,5,6,7: mon-sun

1,2,3,6,7: mon-wed, sat, sun

1,3,4,5,6: mon, wed-sat

2,3,4,6,7: tue-thu, sat, sun

1,3,4,6,7: mon, wed, thu, sat, sun

7: sun

1,7: mon, sun

1,8: argumenterror

原文提供的單元測試**:

require 'test/unit'

class dayrangetest < test::unit::testcase

def test_english

tests =

tests.each do |days, expected|

assert_equal expected, dayrange.new(days).to_s

endend

end

-----解答分割線-----

原題和一些解法在這裡:[url]

Ruby每週一測 液晶屏數字

題目分割線 我們會在很多地方看到液晶屏樣式顯示的數字,比方說 微波爐顯示時間,常見的實現是利用7個發光二極體來做的 img 這週的題目就是完成下面這個class,呼叫display方法進行液晶數字顯示 class lcd def initialize scale 1 enddef display d...

Ruby每週一測 容易記的電話號碼

題目分割線 以前在國外的影視或者廣告中看到出現含字母的 號碼,比如1 800 pick ups 美國ups快遞號碼 心中不免有些疑惑 難道國外的 是可以撥字母的?後來請教國外朋友,才明白這個疑問有點傻有點天真 看一下常見的 鍵盤 每個數字旁邊都有3個或者4個字母對應,那麼上面這個 號碼其實就是1 8...

每週一喂丨致「黃金礦工」 請在法律允許範圍內挖礦!

本月4日,工信部官網發布了 2018年第二季度網路安全威脅態勢分析與工作綜述 指出非法 挖礦 嚴重威脅網際網路網路安全,工信部將組織各相關單位開展木馬殭屍 病毒 移動惡意程式等相關惡意程式的專項治理工作。可能一提到挖礦,大家首先會想到的是這樣。但我們今天要說的 挖礦 卻是這麼一副模樣。什麼是 挖礦 ...