iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 20
0
自我挑戰組

自我挑戰 Ruby 刷題 30 天系列 第 20

Day20 - Codewars 刷題

2/3 過去了,發了 20 篇廢文
再 10 天就結束了,同時也是最忙的階段
一起把鐵人賽完賽吧!!

Codewars LV8


題目(Fake Binary)

Given a string of digits, you should replace any digit below 5 with '0' and any digit 5 and above with '1'. Return the resulting string.
def fake_bin(s)
  # Insert you code here...
end

describe "Basic test" do
  it "should test for something" do
    Test.assert_equals(fake_bin('45385593107843568'), '01011110001100111');
    Test.assert_equals(fake_bin('509321967506747'), '101000111101101'); 
    Test.assert_equals(fake_bin('366058562030849490134388085'), '011011110000101010000011011');
  end
end

影片解題:


答案:

# Fake Binary
def fake_bin(s)
  # 方法1
  s.tr('123456789', '000011111')

  # 方法2
  s.chars.map{ |i| i.to_i < 5 ? 0 : 1}.join

  # 方法3
  s.gsub(/[1234]/, '0').gsub(/[56789]/, '1')
end

本文同步發布於 小菜的 Blog https://riverye.com/


上一篇
Day19 - Codewars 刷題
下一篇
Day21 - Codewars 刷題
系列文
自我挑戰 Ruby 刷題 30 天31

尚未有邦友留言

立即登入留言