Codewars Ruby Challenge — Day 22/30

陳炯翰
Han's|Sharing
Published in
2 min readSep 22, 2020

學習

  1. select 上的篩選不一定是直接針對每個「||」:在不管在 map, select, each 時,過去都是直接對「||」內的值進行操作 ex. array.select { |a| a.to_i },透過今天的經驗發現可以做到 array.select { |a| array.count(a) > 1},間接操作的方式

題目:

# 計算不重複元素的總合
def non_repeat_sum(arr)
# 實作內容
end

答案需要過以下測試:

RSpec.describe do
it "計算不重複元素的總合" do
expect(non_repeat_sum([4,5,7,5,4,8])).to be 15
expect(non_repeat_sum([9, 10, 19, 13, 19, 13])).to be 19
expect(non_repeat_sum([16, 0, 11, 4, 8, 16, 0, 11])).to be 12
expect(non_repeat_sum([5, 17, 18, 11, 13, 18, 11, 13])).to be 22
expect(non_repeat_sum([5, 10, 19, 13, 10, 13])).to be 24
end
end

我的答案

思路:

  1. 觀察到重複的不會被計算到,只計算出現過一次的總和
  2. 不太知道如何刪掉重複的語法,查了一下 stackoverflow,就不小心看到能完美計算這題解答的方式

龍哥建議的答案

--

--