So few days ago I applied to a MNC and I had some interesting problems to solve in given amount of time. So let me share one with you, see if you can solve this.
Problem Description
So let's say we have a URL something like this:
let url = "https://dev.to/0shuvo0"
Now they have converted the url to a base64 string.
So the URL have become something like this:
let url = "aHR0cHM6Ly9kZXYudG8vMHNodXZvMA=="
Now what they did was split the sting to multiple parts and convert into an array
let url = ["aHR0cH", "M6Ly9kZX", "YudG8vMHN", "odXZvMA=="]
But of course the madnesses doesn't stop here. Then the shuffled the array so it became something like this:
let url = ["M6Ly9kZX", "aHR0cH", "odXZvMA==", "YudG8vMHN"]
And lastly they have converted that array to a string.
So here is your input
let url = `[ "6Ly9kZXYudG", "9jb21tZW5", "8vMHNodXZvMC", "aHR0cHM", "0LzFqZTFt" ]`
Use the input to find the original URL programmatically you have 45 Minutes to do it.
Useful JavaScript functions that can help you
- You can convert your array to sting by calling join method on it. Eg.
let urlStr = url.join("")
- You can use atob function to decode the base64 string.
let decoded = atob(urlStr)
Top comments (58)
Yes I can solve the interview problem (as in, the problem with interviews in the industry in general!).
I would look at the person interviewing me dead in the eyes and ask "who hurt them". What made them think in any way this question remotely resembles something you would need to do in the real world?
I would look at them asking why on Earth they thought it was a good interview question, what skills it proved I had that I would need to learn and just generally ask them why we can't create an interview process that actually proves talent.
I would ask them what happened to our industry where they thought this question is remotely useful and then would slowly rise from my seat, thank them for the opportunity and walk to the door.
Just as the door is about to close I would say "And please can I have the π¬ treat π¬ you promised me for solving it" and walk away, still searching for a company that doesn't ask dumb interview questions. ππ€£
Being Serious for a second, besides the dig at our industry and it's stupid interview practices it was a fun little brain teaser. Have a β€π¦ for a nice morning wake up challenge!
Yeah, I would run away from there as fast as possible. Can't imagine what the interviewer could do, seems like a psychopath really.
Just kidding, but I agree, this is not the type of question we should be asking in an interview, it shows nothing of value for the real world. I think this is more of a practice exercise for begginers more than anything. Though it's a fun little problem
Actually it was really interesting
Because the like you'd finally decode would lead you to the next step of recruitment
Haha now this would make it more interesting as remote interview technique, you can only proceed to the next step if you can decode the link.
You could also make it time sensitive so if they take too long to complete the task the link expires!
Still hate questions like this (yet again, not a stab at you, just our industry), but that line of thinking, a "follow the breadcrumbs" type of coding interview, that is an awesome and fun idea π€£
That's really cool, gamifing it and making it somewhat of a puzzle. I guess the complexity would increment as you solved more steps right?
Yup, that's quite cool actually, making the process a bit more fun.
Yes, there also as time limit of link
maybe if we prove P = NP the way they Interview people will also change π
You're saying it would be a valid question as part of a trail of clues?
I've always liked those provided they have any logical reasoning behind them. But this one doesn't, this one has two options:
1 is an exercise demonstrating you can do a few different tasks, laid out more like chores, and 2 could be absolutely anything and is a game of nonsense rather than any kind of logical or lateral thinking.
Structuring interview questions at any company should be straight forward. Compile issues the company has actually faced and overcome recently. From that list produce question related to the role so you can see if a candidate can at best solve problems the company tends to have, or at least demonstrates good reasoning around those issues.
Many DSA/CP related questions won't resemble something you would need to do in the real world
What kind of question would be good to know interviewees problem solving capability in about an hour?
A basis for a coding interview using "FizzBuzz" onlyβ- 8 challenges for beginners AND Pros [with a twist for Pros! π±]
InHuOfficial γ» Jul 11 γ» 13 min read
The concept is to build upon previous bits to show a persons thought process and how they organise (and reorganise) code.
Needs some refinement but I think a concept like this is way better.
You can't have such basic one for intermediate or senior role
If you think it is too easy for senior devs then you can add more complexity.
It is the concept and what it looks at that is more important.
Instead of us testing if they can remember some obscure algorithm (that you would just look up) you can assess their thought process.
If you read the article you will see that the actual problems are not what is being tested, instead we are testing:
These are the skills that matter in a team, I don't care if you can write a "travelling salesman problem" solve from memory, I just care that you can order your thoughts into a logical path to complete a given challenge in the real world and create code that is easy to maintain.
Also, it is just a concept, you can make it as difficult as you want by just adding harder requirements after point 8.
To be honest I never liked CP
My leetcode rating it 1 star
But most tech companies will either demand a degree which I don't have or good cp skills
Yeah, and that is half the issue as it skews the thought process!
It is always fun seeing how people spend months practicing coding interview problems who have been developing for years as it isn't what they do each day!
I always imagine it to be like a lorry driver being asked how to replace a clutch...kind of related but doesn't tell you how good they are at driving and a skill they will probably never need to use! π€£
Maybe some day it will change
And yes its quite fun π
The permutation part is what people struggles to figure out
If nothing is known about the URL beforehand, this seems underspecified. There are multiple valid URLs that can be constructed from the fragments.
Yields:
You can take those multiple URLs as a challenge as well
Like sending https request to see the status
Those are additional assumption about the URL, though:
Hey, I got the solution. The only thing is that I'm more familiar with python but the same logic applied in other languages too.
Great
Some people just want to see the world burn lol!!!!
Fun exercise nonetheless, here is what I came up with in 5 minutes. I did it in NodeJS though.
A couple of notes on the solution:
isValidUrl
function to do so, without changing anything elseBut basically the logic is this:
Nice π
This is the worst implementation here, but it workd
Output:
A Perl solution I was able to write in less than 5 minutes:
Nice
Savage
Convert the strings in each array element back to base64, then iterate through each possible combination until you find one that, converted back into a string, starts with http. This is aided by the fact the last array element will always end in ==.
This sounds like some of the 'oldschool' brain teasers (example: 'Why are manhole covers round?' -- which of course I answer 'because manholes are round, any other shape would be silly')
At least this is asking for you to code something vs. just ask if you know trivia.
Here's my not-so-fancy recursive solution :)
Outputs: