Skip to content

Commit 8e73f2f

Browse files
committed
exercism 58
1 parent 438f065 commit 8e73f2f

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ solution of many challenges of [Leetcode](https://leetcode.com/), [Exercism](htt
275275
55. [Pythogorean Triplet](https://github.com/kumar91gopi/Algorithms-and-Data-Structures-in-Ruby/blob/master/exercism/pythogorean_triplet.rb)
276276
56. [Collatz Conjecture](https://github.com/kumar91gopi/Algorithms-and-Data-Structures-in-Ruby/blob/master/exercism/collatz_conjecture.rb)
277277
57. [Seive](https://github.com/kumar91gopi/Algorithms-and-Data-Structures-in-Ruby/blob/master/exercism/seive.rb)
278+
58. [Proverb](https://github.com/kumar91gopi/Algorithms-and-Data-Structures-in-Ruby/blob/master/exercism/proverb.rb)
278279

279280
<a name="leetcode"/>
280281

exercism/proverb.rb

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#Problem: https://exercism.org/tracks/ruby/exercises/proverb
2+
3+
#Solution
4+
class Proverb
5+
def initialize(*inputs,qualifier:nil)
6+
@proverb = ""
7+
base_line = "For want of a %{first} the %{second} was lost.\n"
8+
last_line = "And all for the want of a %{qualifier}."
9+
qualifier = qualifier.nil? ? inputs[0] : "#{qualifier} #{inputs[0]}"
10+
input_len = inputs.length
11+
for i in 0..input_len-2
12+
@proverb+= base_line % {first: inputs[i],second:inputs[i+1]}
13+
end
14+
@proverb+= last_line % {qualifier:qualifier}
15+
end
16+
17+
def to_s
18+
@proverb
19+
end
20+
end
21+
22+
#Solution 2 (using each_cons to simplify iterations)
23+
class Proverb
24+
def initialize(*inputs,qualifier:nil)
25+
@proverb = ""
26+
base_line = "For want of a %{first} the %{second} was lost.\n"
27+
last_line = "And all for the want of a %{qualifier}."
28+
qualifier = qualifier.nil? ? inputs[0] : "#{qualifier} #{inputs[0]}"
29+
inputs.each_cons(2) do |items|
30+
@proverb+= base_line % {first: items[0],second:items[1]}
31+
end
32+
@proverb+= last_line % {qualifier:qualifier}
33+
end
34+
def to_s
35+
@proverb
36+
end
37+
end

0 commit comments

Comments
 (0)