Encryption

Encryption - A HackerRank challenge solution

Problem

An English text needs to be encrypted using the following encryption scheme.

First, the spaces are removed from the text. Let be the length of this text.

Then, characters are written into a grid, whose rows and columns have the following constraints:

Example

s = if man was meant to stay on the ground god would have given us roots

After removing spaces, the string is 54 characters long. sqrt(54) is between 7 and 8, so it is written in the form of a grid with 7 rows and 8 columns.

ifmanwas  
meanttos          
tayonthe  
groundgo  
dwouldha  
vegivenu  
sroots
  • Ensure that row X columns >= L
  • If multiple grids satisfy the above conditions, choose the one with the minimum area, i.e. rows X columns.

The encoded message is obtained by displaying the characters of each column, with a space between column texts. The encoded message for the grid above is:

imtgdvs fearwer mayoogo anouuio ntnnlvt wttddes aohghn sseoau

Create a function to encode a message.

Function Description

Complete the encryption function in the editor below.

encryption has the following parameter(s):

  • string s: a string to encrypt

Returns

  • string: the encrypted string

Input Format

  • One line of text, the string s

Constraints

1 <= length of s <= 81

s contains characters in the range ascii[a-z] and space, ascii(32).

My Solution

I’m providing the solution for Python and JS, please leave on the comments if you found a better way.

The actual solution is pretty simple if you got to understand the problem. The first time I read it wrong, and I missed some important data, so make sure you read carefuly through the problem and the examples they provide.

If you liked what you saw, please support my work!

Juan Cruz Martinez - Author @ Live Code Stream

Juan Cruz Martinez

Juan has made it his mission to help aspiring developers unlock their full potential. With over two decades of hands-on programming experience, he understands the challenges and rewards of learning to code. By providing accessible and engaging educational content, Juan has cultivated a community of learners who share their passion for coding. Leveraging his expertise and empathetic teaching approach, Juan has successfully guided countless students on their journey to becoming skilled developers, transforming lives through the power of technology.