diff options
| author | deadmarshal <adeadmarshal@gmail.com> | 2023-09-20 16:15:49 +0330 |
|---|---|---|
| committer | deadmarshal <adeadmarshal@gmail.com> | 2023-09-20 16:15:49 +0330 |
| commit | 8701808a4ca1e652ba6a38eb5914d1ca6341cbf1 (patch) | |
| tree | 1e65a5733be4fad5f9793ba12a6c1624281bcf88 /challenge-235/deadmarshal/ruby | |
| parent | aee701524950403dce06a2a835452b79eacabce1 (diff) | |
| download | perlweeklychallenge-club-8701808a4ca1e652ba6a38eb5914d1ca6341cbf1.tar.gz perlweeklychallenge-club-8701808a4ca1e652ba6a38eb5914d1ca6341cbf1.tar.bz2 perlweeklychallenge-club-8701808a4ca1e652ba6a38eb5914d1ca6341cbf1.zip | |
TWC235
Diffstat (limited to 'challenge-235/deadmarshal/ruby')
| -rw-r--r-- | challenge-235/deadmarshal/ruby/ch1.rb | 25 | ||||
| -rw-r--r-- | challenge-235/deadmarshal/ruby/ch2.rb | 15 |
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-235/deadmarshal/ruby/ch1.rb b/challenge-235/deadmarshal/ruby/ch1.rb new file mode 100644 index 0000000000..0fa090b488 --- /dev/null +++ b/challenge-235/deadmarshal/ruby/ch1.rb @@ -0,0 +1,25 @@ +#!/usr/bin/env ruby + +def remove_one(arr) + c1,c2,idx1,idx2 = 0,0,-1,-1 + (1..arr.length()-1).each do |i| + if arr[i] <= arr[i-1] + c1 += 1 + idx1 = i-1 + end + end + (1..arr.length()-2).to_a.reverse.each do |i| + if arr[i] <= arr[i-1] + c2 += 1 + idx1 = i+1 + end + end + return true if c1 == 1 && c2 == 1 && idx2 - idx1 + 1 == 2 + return false if c1 > 1 || c2 > 1 + return true +end + +p remove_one([0,2,9,4,5]) +p remove_one([5,1,3,2]) +p remove_one([2,2,3]) + diff --git a/challenge-235/deadmarshal/ruby/ch2.rb b/challenge-235/deadmarshal/ruby/ch2.rb new file mode 100644 index 0000000000..6d067b5a89 --- /dev/null +++ b/challenge-235/deadmarshal/ruby/ch2.rb @@ -0,0 +1,15 @@ +#!/usr/bin/env ruby + +def duplicate_zeros(arr) + ret = [] + for e in arr + break if ret.length() == arr.length() + e == 0 ? ret.push(0,0) : ret.push(e) + end + ret +end + +p duplicate_zeros([1,0,2,3,0,4,5,0]) +p duplicate_zeros([1,2,3]) +p duplicate_zeros([0,3,0,4,5]) + |
