iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0
自我挑戰組

Codewars Ruby Challenge in 30 Days系列 第 8

Codewars Ruby Challenge - Day 8/30

  • 分享至 

  • xImage
  •  

學習

  1. Sort_by 的方法:透過 array.sort_by { |s| s.length } 可以將 array 中每個值的長度算出來,再由小到大排序

題目:

def find_shortest(str)
  # 實作內容
end

答案需為:

# 今天開始需要用 rspec 執行測試檔
RSpec.describe do
  it "找出最短的字" do
    expect(find_shortest("bitcoin take over the world maybe who knows perhaps")).to be 3
    expect(find_shortest("turns out random test cases are easier than writing out basic ones")).to be 3
    expect(find_shortest("lets talk about javascript the best language")).to be 3
    expect(find_shortest("i want to travel the world writing code one day")).to be 1
    expect(find_shortest("Lets all go on holiday somewhere very cold")).to be 2
  end
end

我的答案

def find_shortest(str)
  str.split(" ").map { |s| s.length }.min
end

思路:

  1. 先把 string 用空格拆開
  2. 然後用 map 搭配 length 算出每個字的長度
  3. 最後透過 min 方法找出最小的值

龍哥建議的答案

def find_shortest(str)
  str.split(" ").sort_by { |s| s.length }.first.length
end

(第一次寫的比龍哥短 YA)


上一篇
Codewars Ruby Challenge - Day 7/30
下一篇
Codewars Ruby Challenge - Day 9/30
系列文
Codewars Ruby Challenge in 30 Days30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言