Top 20 String Coding Problems from Programming Job Interviews

javinpaul on June 01, 2019

Along with array, binary tree, and linked list data structures, the string is another popular topic on programming job interviews. I have never pa... [Read Full]
markdown guide
 

"Thank you for selecting me as a candidate to interview, if you honestly think I've worked my way up to being a senior developer without knowing how to actually perform the job, then this isn't an organization I want to work for. I'm sure we both have more important things to do with our time, so why don't we go ahead and end this now."

 

Well @Bradley, I do understand that after a certain level of experience you may find it offending solving these questions but that's not the goal. If you are hands-on with coding, you can easily solve these problems but if you struggle with solving these, it means you are a bit rusty and not really doing coding everyday.

 

It doesn't matter to me how easy the questions are to answer. To me:

The question is trying to verify that I know how to do trivial and/or esoteric operations off the top of my head, which lets be honest, who has ever had to reverse the words of a sentence? Likewise, who hasn't had to strip bad characters out of a string?

The interviewers care about my rote memorization, which has nothing to do with being a good developer.

The company put someone in charge of interviewing that isn't a developer and they pulled questions off the internet thinking this is what makes a great developer.

The person in charge of hiring is too busy or too lazy to put the time into determining if a long list of candidates are a good fit for their organization, so they use this as a quick way to weed out candidates in round one. Mission successful; if they're not going to put the time into selecting quality candidates then right off the bat I'm not too excited about my prospective coworkers, nor the support I can expect from the organization.

What I'm saying is that a company asking this type of question tells me all I need to know about that company.

About the most I'll do is some sort of take home project and discuss at the interview: at least then I can either use a language or library I haven't used in a long time or learn a new one while I'm doing the project so that I'm not wasting my time.

Exactly! Job interviews are a two-way thing. Or at least they should be.

 

Horrible idea for a job interview. Perhaps for a junior position, or even for an internship, but not for a senior, or at least for minimally independent position. All of those problems are easily solvable with Google.
On the other hand, as a senior, you have to work with multiple different languages, technologies, paradigms and be able to to figure out best way to solve the problem, having multiple proposed solutions. Problems you referred are trivial, well known and deeply exploited.

From my experience, I had people who excelled at this kind of questions but failed at "as a java developer i won't touch js/html" kind of test. As a scrum master and main developer on the team I cannot accept situation where one of the members can't (don't want to) handle tasks other people do.

As interviewer I like this question: which features of java8+ are most important to you?
It gives the interviewee chance to gather thoughts, check if he is up to date and on which parts of the language he focuses. And there is no "bad" answer. All answers reflect how they think, what they focus on, and, honestly, if you rate people's creativity by number of algorithms they memorized, you'll assemble a team of losers who can't solve any problem unless it's already solved by a business analyst.

I don't want to work for you. Sorry.

 

The java example of reversing a string in-place is wrong. Strings are immutable in Java. The example given will involve two array copies.

 

Well, while you are correct, it's about logic. In reality, it's better to use StringBuilder.reverse() but yes, mentioning that fact can impress some interviewers too.

 

I think that trying to let things clear during the interview helps the candidate to understand the importance behind these kind of questions. In one of the process I participated the interviewer explained that solving the string problems I was facing was not the point. He explained the time constraints the projects used to demand in the company and for that reason code performance and complexity concerns would be also evaluated. String problems themselves probably do not represent the scenario a candidate will be working on, but perhaps telling about the skills required to not hit the iceberg helps to care about its top.

 

Possibly the worst way to hire someone. They give zero indication of a devs ability.

 

I don't know why you think so because this is not the only interview anyone will give to get the job. It's not that easy. this is just a part of a big hiring process.

 
 

Ive always argued against this type of interview. Its pretty frustrating because developers that knows how to solve these problems dont actively enhance the business or product they apply for. The ones that would fail this exam in the interview could learn how to solve these problems on the job yet make great contributions to the domain. Interviews should ask domain driven questions because that's what drives the product and the business.. away from this mentality. 14 years as a programmer.. and never once was asked how to figure out a palindrome. What difference does that make? And if it does.. why can't I figure it out after I get hired?

 

Hello Sultan, there is a definite value of asking this question, it tells about their coding skills, problem-solving ability, how to convert thoughts and logic to the code, testing, analysis and a lot more which is key skills to work as a software developer. That's the reason these kinds of coding interview questions have survived the test of time.

 

Hi Javinpaul,

But thats why developers get certification and degrees and soending a lot of time and $$$ to do it. When you hire a roof contractor do you let them test if they can place shingles properly? Or when you choose a dentist, do you let them test on model teeth before they test yours? Its a shame that the dev community can't come up with better ways to trust devs and test their knowledge on domain drive design, network systems, project configurations, and all the existentials that comprise a project. These types of question are good college exams.. but I just dont see how they are that great for interviews.. its a bit archaic. But it is what it is. I really like your article btw, and don't mean to pick at it like that. Id actually use your samples and tests when I teach programming to my students.

Hello Sultan,
Thanks for your appreciation, yes, you can feel free to use the article for educational purpose. Regarding your question, I agree with you but the irony is that there is a big gap between the interview and the actual work you do. That's why only general skills are tested like learning ability, problem-solving etc. Now companies are moving towards more stringent online coding test where you need to code a scenario based program but still that's far away from what you will do in the actual job.

 

The idea is to see how you go about solving problems. The actual problems themselves aren't really all that important. One question I have been asked is "How would you calculate the number of seagulls in the city?". At first glance, this question has nothing to do with software engineering and it certainly isn't a programming problem.

 

But that's experimental. Anyone can solve those types of problems in their own setting. Interviews contains very limited resources, so it makes simple problem solving more difficult than needed and completely unrelated to what your job responsibilities are. Why do interviews have this? Simple.. laziness. I been asked to define "virtual" in almost every interview.. and to do an algorithm to sort a list.. taking the same boilerplate interview template. To be even more honest, usually job responsibilities are in fact way easier than questions asked during the interview. Better off making these questions as take home, and have the person discuss the solution during the interview. Cheating in take home is fine.. whats important is the interview.

I can relate to that. I was asked in an interview what "type erasure" was. My answer: "I can't remember". They still offered me the job, so what was the point of that question?

code of conduct - report abuse