You’ve got a binary code which has to be buried among words in order to unconsciously pass the cipher. Create a program that would cover the word with a binary mask. If, while covering, a letter finds itself as 1, you have to change its register to the upper one, if it’s 0, leave it as it is. Words are always in lower case and in the same row with the binary mask.
The first argument is a path to a file. Each row contains a test case with a word and a binary code separated with space, inside of it. The length of each word is equal to the length of the binary code.
hello 11001 world 10000 cba 111
HEllO World CBA
- Words are from 1 to 20 letters long.
- The number of test cases is 40.
#!/usr/bin/env ruby -w def decode(str, binary_mask) binary_mask.each_char.with_index do |b, i| str[i] = str[i].upcase if b == "1" end str end ARGF.each_line do |line| str, binary_mask = line.chomp.split puts decode(str, binary_mask) end