summaryrefslogtreecommitdiff
path: root/spec/heaps_stacks_queues/decode_string_spec.rb
diff options
context:
space:
mode:
authormokha <mokha@cisco.com>2017-09-18 13:38:10 -0600
committermokha <mokha@cisco.com>2017-09-18 13:38:10 -0600
commitfd7cbd2873beea3290d3e6a1b866b158e708de3d (patch)
tree2db865c12824aa2454eb98587dfa518178bc2d6a /spec/heaps_stacks_queues/decode_string_spec.rb
parentdf1a4a524e6cdaccbc8579246151ce5b99ec1f37 (diff)
complete first 2 tests.
Diffstat (limited to 'spec/heaps_stacks_queues/decode_string_spec.rb')
-rw-r--r--spec/heaps_stacks_queues/decode_string_spec.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/spec/heaps_stacks_queues/decode_string_spec.rb b/spec/heaps_stacks_queues/decode_string_spec.rb
index 271315d..5049455 100644
--- a/spec/heaps_stacks_queues/decode_string_spec.rb
+++ b/spec/heaps_stacks_queues/decode_string_spec.rb
@@ -40,8 +40,23 @@ Guaranteed constraints:
DOC
describe "#decode_string" do
+ REGEX = /^*(\d)\[(.*)\]$/
+
+ def decode(count, message)
+ if REGEX.match?(message)
+ x = message[0]
+
+puts [message, x].inspect
+ y, z = message.scan(REGEX)[0]
+ "#{x}#{decode(y.to_i, z)}" * count
+ else
+ message * count
+ end
+ end
+
def decode_string(message)
- message
+ x, y = message.scan(REGEX)[0]
+ decode(x.to_i, y)
end
[